{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-alert.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiAlert",
          "customElement": true,
          "tagName": "ki-alert",
          "description": "A persistent inline status message with token-backed tone semantics.",
          "whenToUse": "show a persistent inline message about the state of a page or\nsection, such as a failed save, completed operation, or service notice, that\nremains until the condition is resolved or the person dismisses it. Express\nseverity with `tone`, never custom styling.",
          "whenNotToUse": "transient confirmations that expire on their own belong to\nthe future `ki-toast`; tiny status descriptors attached to another element\nbelong to `ki-badge`; blocking decisions belong to `ki-dialog`; inline\nfield-level validation belongs to the form control.\n\nAssistive technology note: alerts that must be announced should be inserted\ndynamically, or re-shown by clearing `dismissed`; alerts present at initial\npage load are exposed with their role but platform announcement is not\nguaranteed.",
          "attributes": [
            {
              "name": "dismiss-label",
              "fieldName": "dismissLabel",
              "type": {
                "text": "string"
              },
              "default": "'Dismiss'",
              "description": "Accessible name for the dismiss button. Override for localization; the\ndefault English string is the component's only built-in user-visible text.\n\nWhen to use: provide a localized action name whenever the document language\nis not English.\nWhen NOT to use: do not put the alert message here; use the default slot."
            },
            {
              "name": "dismissed",
              "fieldName": "dismissed",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Reflected dismissed state. User dismissal sets it; applications may also\nset or clear it. While true, the host remains in the document but renders no\nalert subtree and leaves the accessibility tree. Clearing it re-shows the\nalert and creates a dynamic live-region appearance.\n\nWhen to use: persist or restore acknowledgement state from application\ndata.\nWhen NOT to use: do not listen for programmatic changes as dismissal\nevents; `ki-dismiss` is only for user activation."
            },
            {
              "name": "dismissible",
              "fieldName": "dismissible",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Renders one native dismiss button when true. The button sits outside the\nlive-region boundary, so its accessible name is not announced as part of\nthe alert message. When false, the alert adds no tab stop.\n\nWhen to use: allow a person to acknowledge and clear a persistent message.\nWhen NOT to use: do not use dismissible for auto-expiring messages; that is\nfuture `ki-toast` behavior."
            },
            {
              "name": "heading",
              "fieldName": "heading",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional emphasized text rendered before the message inside the live\nregion. Empty strings render no heading. The heading is a `strong`\nelement, not a document heading, so it never changes page outline.\n\nWhen to use: add a short label when it helps identify the status message.\nWhen NOT to use: do not use heading for page structure; use a real heading\noutside the alert when the document needs one."
            },
            {
              "name": "tone",
              "fieldName": "tone",
              "type": {
                "text": "\"danger\" | \"info\" | \"neutral\" | \"success\" | \"warning\" | string & {}"
              },
              "default": "'neutral'",
              "description": "Semantic intent for visual styling and live-region urgency. `danger` and\n`warning` expose `role=\"alert\"`; `neutral`, `success`, `info`, absent, and\nunrecognized values expose `role=\"status\"`. Unknown values keep rendering\nand fall back to the neutral token matrix by CSS construction.\n\nWhen to use: choose the tone that describes the page or section state.\nWhen NOT to use: do not use tone for layout, density, or filled-vs-outlined\nstyling; those are token/theme decisions."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "dismissLabel",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "'Dismiss'",
              "description": "Accessible name for the dismiss button. Override for localization; the\ndefault English string is the component's only built-in user-visible text.\n\nWhen to use: provide a localized action name whenever the document language\nis not English.\nWhen NOT to use: do not put the alert message here; use the default slot.",
              "attribute": "dismiss-label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "dismissed",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Reflected dismissed state. User dismissal sets it; applications may also\nset or clear it. While true, the host remains in the document but renders no\nalert subtree and leaves the accessibility tree. Clearing it re-shows the\nalert and creates a dynamic live-region appearance.\n\nWhen to use: persist or restore acknowledgement state from application\ndata.\nWhen NOT to use: do not listen for programmatic changes as dismissal\nevents; `ki-dismiss` is only for user activation.",
              "attribute": "dismissed",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "dismissible",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Renders one native dismiss button when true. The button sits outside the\nlive-region boundary, so its accessible name is not announced as part of\nthe alert message. When false, the alert adds no tab stop.\n\nWhen to use: allow a person to acknowledge and clear a persistent message.\nWhen NOT to use: do not use dismissible for auto-expiring messages; that is\nfuture `ki-toast` behavior.",
              "attribute": "dismissible",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "heading",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Optional emphasized text rendered before the message inside the live\nregion. Empty strings render no heading. The heading is a `strong`\nelement, not a document heading, so it never changes page outline.\n\nWhen to use: add a short label when it helps identify the status message.\nWhen NOT to use: do not use heading for page structure; use a real heading\noutside the alert when the document needs one.",
              "attribute": "heading",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "tone",
              "privacy": "public",
              "type": {
                "text": "\"danger\" | \"info\" | \"neutral\" | \"success\" | \"warning\" | string & {}"
              },
              "default": "'neutral'",
              "description": "Semantic intent for visual styling and live-region urgency. `danger` and\n`warning` expose `role=\"alert\"`; `neutral`, `success`, `info`, absent, and\nunrecognized values expose `role=\"status\"`. Unknown values keep rendering\nand fall back to the neutral token matrix by CSS construction.\n\nWhen to use: choose the tone that describes the page or section state.\nWhen NOT to use: do not use tone for layout, density, or filled-vs-outlined\nstyling; those are token/theme decisions.",
              "attribute": "tone",
              "reflects": true
            }
          ],
          "events": [
            {
              "name": "ki-dismiss",
              "type": {
                "text": "CustomEvent<null>"
              },
              "description": "Fired once after the user dismisses the alert — emitted after the alert is\nhidden and focus has been handed to the next control. `detail` is `null`\nand the event is not cancelable (the alert is already gone when it runs).\nWhen to use: record acknowledgement, or advance an application flow after a\nuser closes the alert.\nWhen NOT to use: do not treat it as a veto point, and do not expect it for\nprogrammatic `dismissed` changes — it fires only for user activation."
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "Message body. It lives inside the live-region boundary."
            }
          ],
          "cssParts": [
            {
              "name": "alert",
              "description": "Outer alert surface: tone background, border, radius, and padding."
            },
            {
              "name": "dismiss",
              "description": "Native dismiss button, rendered only when dismissible."
            },
            {
              "name": "heading",
              "description": "Optional emphasized heading, rendered only when non-empty."
            },
            {
              "name": "message",
              "description": "Message body wrapper around the default slot."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-alert-border-width",
              "description": "dimension used by the alert component for border width (MarsUI never strokes alert surfaces: Alert master, Info Notes and Toasts all carry width 0; tone lives in the fill and text. material3 keeps its 2px border via its override)."
            },
            {
              "name": "--ki-alert-danger-bg",
              "description": "color used by the alert component for danger background (MarsUI Surface/danger_base_em_alpha: tone-500 at 12% light / alpha dark — the Info-Note tint, replacing the opaque 50/950 slabs)."
            },
            {
              "name": "--ki-alert-danger-border",
              "description": "color used by the alert component for danger border (MarsUI draws no tone border on any alert/note/toast surface)."
            },
            {
              "name": "--ki-alert-danger-fg",
              "description": "color used by the alert component for danger foreground."
            },
            {
              "name": "--ki-alert-dismiss-active-fg",
              "description": "color used by the alert component for dismiss active foreground."
            },
            {
              "name": "--ki-alert-dismiss-border-width",
              "description": "dimension used by the alert component for the dismiss chip bevel stroke (MarsUI 24px raised circle: 1px Outline/secondary_button_top hairline)."
            },
            {
              "name": "--ki-alert-dismiss-hover-bg",
              "description": "color used by the alert component for dismiss hover background (MarsUI hover mechanism: hover_overlay_inverse Black/3 wash — the dismiss chip previously had zero visible hover change)."
            },
            {
              "name": "--ki-alert-dismiss-hover-fg",
              "description": "color used by the alert component for dismiss hover foreground."
            },
            {
              "name": "--ki-alert-dismiss-icon-size",
              "description": "dimension used by the alert component for dismiss icon size (Figma close glyph box 16px inside the 24px raised circle; repointed from 18px per the fidelity audit)."
            },
            {
              "name": "--ki-alert-dismiss-radius",
              "description": "dimension used by the alert component for the dismiss chip shape (MarsUI Radius/radius_round full circle)."
            },
            {
              "name": "--ki-alert-dismiss-rest-fg",
              "description": "color used by the alert component for dismiss rest foreground."
            },
            {
              "name": "--ki-alert-dismiss-size",
              "description": "dimension used by the alert component for dismiss size."
            },
            {
              "name": "--ki-alert-focus-ring-color",
              "description": "color used by the alert component for focus ring color."
            },
            {
              "name": "--ki-alert-focus-ring-offset",
              "description": "dimension used by the alert component for focus ring offset."
            },
            {
              "name": "--ki-alert-focus-ring-shadow",
              "description": "shadow used by the alert dismiss control for the focus ring glow (MarsUI Focus/primary: 3px spread ring at 20% — see ki.focus.primary. specs/002-ki-button/design-extraction.md §2.5 recorded 40%, having read the alpha off the Dark canvas mode, same double mechanism as ki-button: glow plus the opaque indicator)."
            },
            {
              "name": "--ki-alert-focus-ring-width",
              "description": "dimension used by the alert component for focus ring width."
            },
            {
              "name": "--ki-alert-font-size",
              "description": "dimension used by the alert component for font size."
            },
            {
              "name": "--ki-alert-gap",
              "description": "dimension used by the alert component for gap (MarsUI Alert master card gap Space/xl 12px)."
            },
            {
              "name": "--ki-alert-heading-font-size",
              "description": "dimension used by the alert component for heading font size."
            },
            {
              "name": "--ki-alert-heading-font-weight",
              "description": "font weight used by the alert component for heading font weight (MarsUI UI/Body 2/medium: weight 600 on the master heading)."
            },
            {
              "name": "--ki-alert-info-bg",
              "description": "color used by the alert component for info background (MarsUI Surface/info_base_em_alpha: tone-500 at 12% light / alpha dark — the Info-Note tint, replacing the opaque 50/950 slabs)."
            },
            {
              "name": "--ki-alert-info-border",
              "description": "color used by the alert component for info border (MarsUI draws no tone border on any alert/note/toast surface)."
            },
            {
              "name": "--ki-alert-info-fg",
              "description": "color used by the alert component for info foreground (MarsUI brief §1 systematic em pattern: tone high-em text on tone base-em surface, matching the success/danger rows and the ki-badge tone matrix; AA 7.3:1)."
            },
            {
              "name": "--ki-alert-line-height",
              "description": "dimension used by the alert component for line height."
            },
            {
              "name": "--ki-alert-message-line-height",
              "description": "dimension used by the alert component for message line height (MarsUI description is 13/20 line_height/para; the heading keeps 15/24)."
            },
            {
              "name": "--ki-alert-neutral-bg",
              "description": "color used by the alert component for neutral background."
            },
            {
              "name": "--ki-alert-neutral-border",
              "description": "color used by the alert component for neutral border."
            },
            {
              "name": "--ki-alert-neutral-fg",
              "description": "color used by the alert component for neutral foreground."
            },
            {
              "name": "--ki-alert-padding-block",
              "description": "dimension used by the alert component for padding block (MarsUI Alert master card: 12px on all four sides)."
            },
            {
              "name": "--ki-alert-padding-inline",
              "description": "dimension used by the alert component for padding inline (MarsUI Alert master card: 12px on all four sides)."
            },
            {
              "name": "--ki-alert-radius",
              "description": "dimension used by the alert component for radius (Info Notes pills measure component radius 8-10px; same 10px value, repointed to the component ramp so personality modes reach it. The card-form Alert master anchors 16px big_component/radius_xs — applies if ki-alert grows the icon-chip card form)."
            },
            {
              "name": "--ki-alert-success-bg",
              "description": "color used by the alert component for success background (MarsUI Surface/success_base_em_alpha: tone-500 at 12% light / alpha dark — the Info-Note tint, replacing the opaque 50/950 slabs)."
            },
            {
              "name": "--ki-alert-success-border",
              "description": "color used by the alert component for success border (MarsUI draws no tone border on any alert/note/toast surface)."
            },
            {
              "name": "--ki-alert-success-fg",
              "description": "color used by the alert component for success foreground."
            },
            {
              "name": "--ki-alert-text-gap",
              "description": "dimension used by the alert component for the heading-to-message stack gap (MarsUI Text_wrap 4px, decoupled from the outer 12px card gap)."
            },
            {
              "name": "--ki-alert-warning-bg",
              "description": "color used by the alert component for warning background (MarsUI Surface/warning_base_em_alpha: tone-500 at 12% light / alpha dark — the Info-Note tint, replacing the opaque 50/950 slabs)."
            },
            {
              "name": "--ki-alert-warning-border",
              "description": "color used by the alert component for warning border (MarsUI draws no tone border on any alert/note/toast surface)."
            },
            {
              "name": "--ki-alert-warning-fg",
              "description": "color used by the alert component for warning foreground (MarsUI brief §1 systematic em pattern: tone high-em text on tone base-em surface, matching the success/danger rows and the ki-badge tone matrix; AA 5.5:1)."
            },
            {
              "name": "--ki-effect-component-backdrop-blur",
              "description": "MarsUI Blur/24 as the component glass backdrop. Components consume this semantic name for backdrop-filter: blur(...) — never the ki.blur primitive directly (primitive-css-consumption gate)."
            },
            {
              "name": "--ki-effect-component-secondary-default-shadow",
              "description": "MarsUI Component_effect/secondary_default: drop 0/2/1.5/-0.5 plus inner White/3 0/2/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur))."
            },
            {
              "name": "--ki-motion-distance-sm",
              "description": "Motion travel distance sm (4px): small slide/settle offsets."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-duration-medium-1",
              "description": "M3 md.sys.motion.duration.medium1 (250ms). onmars: MarsUI moderate step (240ms, 2x the 120ms base)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-outline-secondary-button-top",
              "description": "semantic color for outline secondary button top."
            },
            {
              "name": "--ki-surface-special-light-s0-dark-s2",
              "description": "semantic color for surface special light s0 dark s2."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiAlert",
          "declaration": {
            "name": "KiAlert",
            "module": "dist/components/ki-alert.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-alert",
          "declaration": {
            "name": "KiAlert",
            "module": "dist/components/ki-alert.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-avatar.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiAvatar",
          "customElement": true,
          "tagName": "ki-avatar",
          "description": "A static identity visual that shows a person or entity at a glance through\na fallback chain: portrait, then initials, then a built-in generic figure.",
          "whenToUse": "a compact identity visual for a person or entity — a comment\nauthor, a contact list item, a project member. Set `label` whenever the\navatar is the only carrier of the identity (no adjacent visible name);\ncompose several into `ki-avatar-group` for a compact \"who is involved\"\nstack with overflow.",
          "whenNotToUse": "as a clickable control (compose the avatar inside an\ninteractive host such as ki-button), for logos or arbitrary illustrations\n(plain `img`), for presence/verification adornments overlaid on the corner\n(a future overlay concern shared with the nav badge), or unlabeled when no\nadjacent text names the identity.",
          "attributes": [
            {
              "name": "initials",
              "fieldName": "initials",
              "type": {
                "text": "string | undefined"
              },
              "description": "Initials rendered verbatim as the second fallback step — never derived\nfrom the label, never truncated (FR-003). Catalog guidance: one to two\ncharacters. With a label present the initials are presentational;\nassistive technology receives the label alone."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name for the identity (\"Ana García\"). With a label the avatar\nis exposed as a named non-interactive image (role `img`) in every content\nmode — the portrait never carries a second alternative text of its own.\nWithout a label the avatar is decorative and contributes nothing to the\naccessibility tree; the identity must then live in adjacent visible text\n(FR-002)."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\" | \"xxs\""
              },
              "default": "'md'",
              "description": "Size step over the shared scale; per-size metrics (box, initials font,\nfigure glyph) are per-theme component tokens, never hardcoded (FR-004).\nAn unrecognized value matches no style selector, so the avatar keeps the\ndefault medium metrics (fallback by CSS construction, FR-007)."
            },
            {
              "name": "src",
              "fieldName": "src",
              "type": {
                "text": "string | undefined"
              },
              "description": "Portrait URL, the first step of the fallback chain. When it fails to\nload — initially or at runtime — the avatar silently falls back to the\ninitials (or the generic figure) with no error, no layout change and no\nevent (FR-001). Loading policy follows the platform image defaults."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "initials",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Initials rendered verbatim as the second fallback step — never derived\nfrom the label, never truncated (FR-003). Catalog guidance: one to two\ncharacters. With a label present the initials are presentational;\nassistive technology receives the label alone.",
              "attribute": "initials",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name for the identity (\"Ana García\"). With a label the avatar\nis exposed as a named non-interactive image (role `img`) in every content\nmode — the portrait never carries a second alternative text of its own.\nWithout a label the avatar is decorative and contributes nothing to the\naccessibility tree; the identity must then live in adjacent visible text\n(FR-002).",
              "attribute": "label",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "size",
              "privacy": "public",
              "type": {
                "text": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\" | \"xxs\""
              },
              "default": "'md'",
              "description": "Size step over the shared scale; per-size metrics (box, initials font,\nfigure glyph) are per-theme component tokens, never hardcoded (FR-004).\nAn unrecognized value matches no style selector, so the avatar keeps the\ndefault medium metrics (fallback by CSS construction, FR-007).",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "src",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Portrait URL, the first step of the fallback chain. When it fails to\nload — initially or at runtime — the avatar silently falls back to the\ninitials (or the generic figure) with no error, no layout change and no\nevent (FR-001). Loading policy follows the platform image defaults.",
              "attribute": "src",
              "reflects": false
            }
          ],
          "events": [],
          "slots": [],
          "cssParts": [
            {
              "name": "avatar",
              "description": "The avatar box: size, shape, surface, border and typography."
            },
            {
              "name": "icon",
              "description": "The built-in generic person figure of the last fallback step."
            },
            {
              "name": "image",
              "description": "The portrait image when `src` is set and loads."
            },
            {
              "name": "initials",
              "description": "The verbatim initials text of the second fallback step."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-avatar-bg",
              "description": "color used by the avatar component for the initials/figure surface: Surface/primary_med_em, the exact variable behind the Type=text gradient start and the Type=icon solid fill. The Figma text gradient (primary_med_em -> primary_low_em_alpha 20%) is deliberately flattened to its solid start color — the token pipeline models no gradients and the spec defines one family-level bg (declared deviation, specs/019-ki-avatar/design-extraction.md decision 2, pending founder ratification)."
            },
            {
              "name": "--ki-avatar-border-color",
              "description": "color used by the avatar component for the surface border: Outline/base_em (Black/3 light, White/3 dark), the exact variable on Type=text variants."
            },
            {
              "name": "--ki-avatar-border-width",
              "description": "dimension used by the avatar component for the surface border (MarsUI 1px hairline on Type=text; applied to the token surface behind initials and figure, dropped under a loaded portrait — design-extraction decision 4)."
            },
            {
              "name": "--ki-avatar-fg",
              "description": "color used by the avatar component for the initials text and the generic-figure glyph (via currentColor): Text/primary_on_primary, the exact variable on every Type=text variant."
            },
            {
              "name": "--ki-avatar-font-family",
              "description": "font family used by the avatar component for initials (MarsUI Typeface/family/body: Inter)."
            },
            {
              "name": "--ki-avatar-font-weight",
              "description": "font weight used by the avatar component for initials (MarsUI Typeface/weight/body/medium: 600)."
            },
            {
              "name": "--ki-avatar-lg-font-size",
              "description": "dimension used by the avatar component for lg initials (MarsUI UI/Body 2: 15px)."
            },
            {
              "name": "--ki-avatar-lg-icon-size",
              "description": "dimension used by the avatar component for the lg generic-figure glyph (MarsUI Icon/User 24px, Space/7xl)."
            },
            {
              "name": "--ki-avatar-lg-size",
              "description": "dimension used by the avatar component for the lg box (48px circle, Figma Space/14xl)."
            },
            {
              "name": "--ki-avatar-md-font-size",
              "description": "dimension used by the avatar component for md initials (MarsUI UI/Para: body_1 13px)."
            },
            {
              "name": "--ki-avatar-md-icon-size",
              "description": "dimension used by the avatar component for the md generic-figure glyph (MarsUI Icon/User 20px, Space/5xl)."
            },
            {
              "name": "--ki-avatar-md-size",
              "description": "dimension used by the avatar component for the md box (40px circle, Figma Space/12xl, node 10011:947)."
            },
            {
              "name": "--ki-avatar-radius",
              "description": "dimension used by the avatar component for the shape: Radius/radius_round bound to every avatar variant — the circle is a radius token, never an attribute (002 shape precedent, FR-005)."
            },
            {
              "name": "--ki-avatar-sm-font-size",
              "description": "dimension used by the avatar component for sm initials (MarsUI UI/Caption 2: 12px)."
            },
            {
              "name": "--ki-avatar-sm-icon-size",
              "description": "dimension used by the avatar component for the sm generic-figure glyph (MarsUI Icon/User 18px, Space/4xl)."
            },
            {
              "name": "--ki-avatar-sm-size",
              "description": "dimension used by the avatar component for the sm box (32px circle, Figma Space/10xl)."
            },
            {
              "name": "--ki-avatar-xl-font-size",
              "description": "dimension used by the avatar component for xl initials (MarsUI UI/Title 2: 18px)."
            },
            {
              "name": "--ki-avatar-xl-icon-size",
              "description": "dimension used by the avatar component for the xl generic-figure glyph (MarsUI Icon/User 28px, Space/9xl)."
            },
            {
              "name": "--ki-avatar-xl-size",
              "description": "dimension used by the avatar component for the xl box (56px circle, Figma Space/16xl)."
            },
            {
              "name": "--ki-avatar-xs-font-size",
              "description": "dimension used by the avatar component for xs initials (MarsUI UI/Caption 1: 10px, same step as xxs — verified on Type=text Size=xs 10108:6226)."
            },
            {
              "name": "--ki-avatar-xs-icon-size",
              "description": "dimension used by the avatar component for the xs generic-figure glyph (MarsUI Icon/User 14px, same step as xxs — NOT the icon-button 16px ramp; verified on 10108:6230)."
            },
            {
              "name": "--ki-avatar-xs-size",
              "description": "dimension used by the avatar component for the xs box (24px circle, Figma Space/7xl)."
            },
            {
              "name": "--ki-avatar-xxs-font-size",
              "description": "dimension used by the avatar component for xxs initials (MarsUI UI/Caption 1: 10px)."
            },
            {
              "name": "--ki-avatar-xxs-icon-size",
              "description": "dimension used by the avatar component for the xxs generic-figure glyph (MarsUI Icon/User 14px, Space/2xl)."
            },
            {
              "name": "--ki-avatar-xxs-size",
              "description": "dimension used by the avatar component for the xxs box (20px circle, Figma Space/5xl; specs/019-ki-avatar/design-extraction.md)."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiAvatar",
          "declaration": {
            "name": "KiAvatar",
            "module": "dist/components/ki-avatar.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-avatar",
          "declaration": {
            "name": "KiAvatar",
            "module": "dist/components/ki-avatar.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-avatar-group.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiAvatarGroup",
          "customElement": true,
          "tagName": "ki-avatar-group",
          "description": "A token-styled companion container that stacks `ki-avatar` children as one\noverlapping row with a configurable visible cap and a static \"+N\" overflow\ncounter.",
          "whenToUse": "a compact \"who is involved\" stack — the members of a shared\ndocument, project card or event row — where space deserves only the first\nfew identities and an exact \"+N\" counter accounts for the rest.",
          "whenNotToUse": "as a member picker or expandable overflow (future interactive\ngrouping — the counter is static text, never a button), for a single\nidentity (use `ki-avatar` alone), or with children other than `ki-avatar`\n(foreign markup is unsupported and not repaired, 016 precedent).",
          "attributes": [
            {
              "name": "max",
              "fieldName": "max",
              "type": {
                "text": "number | undefined"
              },
              "description": "Visible cap for the member stack. When the member count exceeds it, the\nfirst `max` members render followed by a \"+N\" counter accounting exactly\nfor the hidden rest. Without it — or when it is not a positive whole\nnumber — every member renders and no counter appears; malformed\nagent-generated markup never breaks the page (FR-009, S14, S15)."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\" | \"xxs\""
              },
              "default": "'md'",
              "description": "Size step governing the metrics of every visible member and the counter\n(avatar vocabulary, FR-010). Member-declared sizes are overridden inside\na group so the stack stays uniform (S6). An unrecognized value matches\nno style selector, so the group keeps the default medium metrics\n(FR-007)."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "max",
              "privacy": "public",
              "type": {
                "text": "number | undefined"
              },
              "description": "Visible cap for the member stack. When the member count exceeds it, the\nfirst `max` members render followed by a \"+N\" counter accounting exactly\nfor the hidden rest. Without it — or when it is not a positive whole\nnumber — every member renders and no counter appears; malformed\nagent-generated markup never breaks the page (FR-009, S14, S15).",
              "attribute": "max",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "size",
              "privacy": "public",
              "type": {
                "text": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\" | \"xxs\""
              },
              "default": "'md'",
              "description": "Size step governing the metrics of every visible member and the counter\n(avatar vocabulary, FR-010). Member-declared sizes are overridden inside\na group so the stack stays uniform (S6). An unrecognized value matches\nno style selector, so the group keeps the default medium metrics\n(FR-007).",
              "attribute": "size",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "`ki-avatar` members, stacked in source order. Members beyond the\nvisible cap are neither rendered nor exposed to assistive technology."
            }
          ],
          "cssParts": [
            {
              "name": "counter",
              "description": "The static \"+N\" overflow text trailing the stack."
            },
            {
              "name": "group",
              "description": "The stack row containing the members and the counter."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-avatar-font-family",
              "description": "font family used by the avatar component for initials (MarsUI Typeface/family/body: Inter)."
            },
            {
              "name": "--ki-avatar-font-weight",
              "description": "font weight used by the avatar component for initials (MarsUI Typeface/weight/body/medium: 600)."
            },
            {
              "name": "--ki-avatar-group-counter-bg",
              "description": "color used by the avatar group component for the +N counter surface: Surface/special/secondary_alpha_base, the exact variable on the secondary-button-styled counter of every capped Avatar_group frame."
            },
            {
              "name": "--ki-avatar-group-counter-border-color",
              "description": "color used by the avatar group component for the counter border: Outline/secondary_button_top, the exact variable on the counter pill (the secondary-button bevel top edge)."
            },
            {
              "name": "--ki-avatar-group-counter-border-width",
              "description": "dimension used by the avatar group component for the counter border (MarsUI 1px hairline on the counter pill)."
            },
            {
              "name": "--ki-avatar-group-counter-fg",
              "description": "color used by the avatar group component for the +N counter text: Text/high_em, the exact variable on the counter label."
            },
            {
              "name": "--ki-avatar-group-counter-radius",
              "description": "dimension used by the avatar group component for the counter shape: Radius/component/radius_* resolves to 1000 in the MarsUI Round mode — the pill is a radius token, never an attribute."
            },
            {
              "name": "--ki-avatar-group-counter-shadow",
              "description": "shadow used by the avatar group component for the counter effects: the exact Component_effect/secondary_default pair (drop 0/2/1.5/-0.5 Elevation/shadow + inner White/3 0/2/3) without its backdrop blur (glass restraint, 021 decision 3)."
            },
            {
              "name": "--ki-avatar-group-lg-counter-font-size",
              "description": "dimension used by the avatar group component for the lg counter text (body_2 15px on the 48px frame)."
            },
            {
              "name": "--ki-avatar-group-lg-counter-padding-inline",
              "description": "dimension used by the avatar group component for the lg counter inline padding (Space/xl 12px on the 48px frame)."
            },
            {
              "name": "--ki-avatar-group-lg-overlap",
              "description": "dimension used by the avatar group component for the lg member overlap (the exact -12px on the 48px Avatar_group frame 10090:2873)."
            },
            {
              "name": "--ki-avatar-group-md-counter-font-size",
              "description": "dimension used by the avatar group component for the md counter text (body_1 13px on the 40px frame)."
            },
            {
              "name": "--ki-avatar-group-md-counter-padding-inline",
              "description": "dimension used by the avatar group component for the md counter inline padding (Space/lg 10px on the 40px frame)."
            },
            {
              "name": "--ki-avatar-group-md-overlap",
              "description": "dimension used by the avatar group component for the md member overlap (the exact -12px on the 40px Avatar_group frame 10087:2701)."
            },
            {
              "name": "--ki-avatar-group-ring-color",
              "description": "color used by the avatar group component for the separating ring: transparent while the onmars ring width is zero (FR-008; a future theme may resolve both)."
            },
            {
              "name": "--ki-avatar-group-ring-width",
              "description": "dimension used by the avatar group component for the separating ring around stacked members: NO Avatar_group frame draws a ring (verified across all five sizes), so onmars resolves the capability to zero — the ring stays a theme decision, never an attribute (FR-008)."
            },
            {
              "name": "--ki-avatar-group-sm-counter-font-size",
              "description": "dimension used by the avatar group component for the sm counter text (body_1 13px on the 32px frame — one step above the sm initials, verified)."
            },
            {
              "name": "--ki-avatar-group-sm-counter-padding-inline",
              "description": "dimension used by the avatar group component for the sm counter inline padding (Space/md 8px on the 32px frame)."
            },
            {
              "name": "--ki-avatar-group-sm-overlap",
              "description": "dimension used by the avatar group component for the sm member overlap (the exact -8px on the 32px Avatar_group frame 10087:2601)."
            },
            {
              "name": "--ki-avatar-group-xl-counter-font-size",
              "description": "dimension used by the avatar group component for the xl counter text (title_2 18px on the 56px frame)."
            },
            {
              "name": "--ki-avatar-group-xl-counter-padding-inline",
              "description": "dimension used by the avatar group component for the xl counter inline padding (Space/2xl 14px on the 56px frame)."
            },
            {
              "name": "--ki-avatar-group-xl-overlap",
              "description": "dimension used by the avatar group component for the xl member overlap (the exact -12px on the 56px Avatar_group frame 10090:2973)."
            },
            {
              "name": "--ki-avatar-group-xs-counter-font-size",
              "description": "dimension used by the avatar group component for the xs counter text (synthesized 24px step following the avatar xs initials size, declared for founder review)."
            },
            {
              "name": "--ki-avatar-group-xs-counter-padding-inline",
              "description": "dimension used by the avatar group component for the xs counter inline padding (synthesized 24px step extending the verified 8/10/12/14 ramp, declared for founder review)."
            },
            {
              "name": "--ki-avatar-group-xs-overlap",
              "description": "dimension used by the avatar group component for the xs member overlap: the 24px group step exists in no Figma frame (five-step set), so it inherits the -8px overlap of the neighboring 20/32px frames (synthesized step, spec 019 Assumptions)."
            },
            {
              "name": "--ki-avatar-group-xxs-counter-font-size",
              "description": "dimension used by the avatar group component for the xxs counter text: no counter exists on the 20px frame, so the value follows the avatar xxs initials step (synthesized, declared for founder review)."
            },
            {
              "name": "--ki-avatar-group-xxs-counter-padding-inline",
              "description": "dimension used by the avatar group component for xxs counter padding inline (raised to clear the 8px member tuck so the + glyph is never occluded; the 20px Figma frame ships no counter — synthesized step, founder review pending)."
            },
            {
              "name": "--ki-avatar-group-xxs-overlap",
              "description": "dimension used by the avatar group component for the xxs member overlap (the -8px stack step on the 20px Avatar_group frame — named xs in Figma, the vocabulary skew recorded in spec 019 Assumptions)."
            },
            {
              "name": "--ki-avatar-lg-font-size",
              "description": "dimension used by the avatar component for lg initials (MarsUI UI/Body 2: 15px)."
            },
            {
              "name": "--ki-avatar-lg-icon-size",
              "description": "dimension used by the avatar component for the lg generic-figure glyph (MarsUI Icon/User 24px, Space/7xl)."
            },
            {
              "name": "--ki-avatar-lg-size",
              "description": "dimension used by the avatar component for the lg box (48px circle, Figma Space/14xl)."
            },
            {
              "name": "--ki-avatar-md-font-size",
              "description": "dimension used by the avatar component for md initials (MarsUI UI/Para: body_1 13px)."
            },
            {
              "name": "--ki-avatar-md-icon-size",
              "description": "dimension used by the avatar component for the md generic-figure glyph (MarsUI Icon/User 20px, Space/5xl)."
            },
            {
              "name": "--ki-avatar-md-size",
              "description": "dimension used by the avatar component for the md box (40px circle, Figma Space/12xl, node 10011:947)."
            },
            {
              "name": "--ki-avatar-radius",
              "description": "dimension used by the avatar component for the shape: Radius/radius_round bound to every avatar variant — the circle is a radius token, never an attribute (002 shape precedent, FR-005)."
            },
            {
              "name": "--ki-avatar-sm-font-size",
              "description": "dimension used by the avatar component for sm initials (MarsUI UI/Caption 2: 12px)."
            },
            {
              "name": "--ki-avatar-sm-icon-size",
              "description": "dimension used by the avatar component for the sm generic-figure glyph (MarsUI Icon/User 18px, Space/4xl)."
            },
            {
              "name": "--ki-avatar-sm-size",
              "description": "dimension used by the avatar component for the sm box (32px circle, Figma Space/10xl)."
            },
            {
              "name": "--ki-avatar-xl-font-size",
              "description": "dimension used by the avatar component for xl initials (MarsUI UI/Title 2: 18px)."
            },
            {
              "name": "--ki-avatar-xl-icon-size",
              "description": "dimension used by the avatar component for the xl generic-figure glyph (MarsUI Icon/User 28px, Space/9xl)."
            },
            {
              "name": "--ki-avatar-xl-size",
              "description": "dimension used by the avatar component for the xl box (56px circle, Figma Space/16xl)."
            },
            {
              "name": "--ki-avatar-xs-font-size",
              "description": "dimension used by the avatar component for xs initials (MarsUI UI/Caption 1: 10px, same step as xxs — verified on Type=text Size=xs 10108:6226)."
            },
            {
              "name": "--ki-avatar-xs-icon-size",
              "description": "dimension used by the avatar component for the xs generic-figure glyph (MarsUI Icon/User 14px, same step as xxs — NOT the icon-button 16px ramp; verified on 10108:6230)."
            },
            {
              "name": "--ki-avatar-xs-size",
              "description": "dimension used by the avatar component for the xs box (24px circle, Figma Space/7xl)."
            },
            {
              "name": "--ki-avatar-xxs-font-size",
              "description": "dimension used by the avatar component for xxs initials (MarsUI UI/Caption 1: 10px)."
            },
            {
              "name": "--ki-avatar-xxs-icon-size",
              "description": "dimension used by the avatar component for the xxs generic-figure glyph (MarsUI Icon/User 14px, Space/2xl)."
            },
            {
              "name": "--ki-avatar-xxs-size",
              "description": "dimension used by the avatar component for the xxs box (20px circle, Figma Space/5xl; specs/019-ki-avatar/design-extraction.md)."
            },
            {
              "name": "--ki-effect-component-secondary-hover-shadow",
              "description": "MarsUI Component_effect/secondary_hover: drops as primary_hover plus inner White/8 0/2/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur))."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-duration-medium-1",
              "description": "M3 md.sys.motion.duration.medium1 (250ms). onmars: MarsUI moderate step (240ms, 2x the 120ms base)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiAvatarGroup",
          "declaration": {
            "name": "KiAvatarGroup",
            "module": "dist/components/ki-avatar-group.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-avatar-group",
          "declaration": {
            "name": "KiAvatarGroup",
            "module": "dist/components/ki-avatar-group.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-badge.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiBadge",
          "customElement": true,
          "tagName": "ki-badge",
          "description": "A static, non-interactive status pill.",
          "whenToUse": "annotate an entity with short status text (a state, a\ncategory) whose meaning is carried by the label itself; the tone color\nonly reinforces the text, it never replaces it.",
          "whenNotToUse": "feedback that must be announced (that is\nki-alert's job — the badge has no live region), an interactive\nchip, filter or button, empty content (the label IS the meaning), or a\nnotification-counter overlay (a future, separate concern).",
          "attributes": [
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "\"md\" | \"sm\""
              },
              "default": "'md'",
              "description": "Metric scale (`--ki-badge-{size}-*` tokens). An unrecognized value\nfalls back to the `md` metrics the same way."
            },
            {
              "name": "tone",
              "fieldName": "tone",
              "type": {
                "text": "\"danger\" | \"info\" | \"neutral\" | \"success\" | \"warning\""
              },
              "default": "'neutral'",
              "description": "Semantic intent, never appearance: each tone resolves its colors from\nthe `--ki-badge-{tone}-*` tokens. An unrecognized value matches no\nstyle selector, so the badge keeps the neutral appearance (fallback by\nCSS construction — no validation code)."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "size",
              "privacy": "public",
              "type": {
                "text": "\"md\" | \"sm\""
              },
              "default": "'md'",
              "description": "Metric scale (`--ki-badge-{size}-*` tokens). An unrecognized value\nfalls back to the `md` metrics the same way.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "tone",
              "privacy": "public",
              "type": {
                "text": "\"danger\" | \"info\" | \"neutral\" | \"success\" | \"warning\""
              },
              "default": "'neutral'",
              "description": "Semantic intent, never appearance: each tone resolves its colors from\nthe `--ki-badge-{tone}-*` tokens. An unrecognized value matches no\nstyle selector, so the badge keeps the neutral appearance (fallback by\nCSS construction — no validation code).",
              "attribute": "tone",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "The label: short status text, the sole carrier of meaning."
            }
          ],
          "cssParts": [
            {
              "name": "badge",
              "description": "The pill: background, foreground, border, radius, metrics\nand typography."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-badge-border-width",
              "description": "dimension used by the badge component for border width (MarsUI tone tags carry width 0 in default state; only the neutral glass type draws its 1px bevel via ki.badge.neutral.border-width. material3 keeps its border via its override)."
            },
            {
              "name": "--ki-badge-danger-bg",
              "description": "color used by the badge component for danger background (MarsUI Surface/danger_base_em_alpha: tone-500 at 12% light — the tint composites over any surface and the dark alias adapts automatically)."
            },
            {
              "name": "--ki-badge-danger-border",
              "description": "color used by the badge component for danger border."
            },
            {
              "name": "--ki-badge-danger-fg",
              "description": "color used by the badge component for danger foreground."
            },
            {
              "name": "--ki-badge-font-family",
              "description": "font family used by the badge component for font family."
            },
            {
              "name": "--ki-badge-font-weight",
              "description": "font weight used by the badge component for font weight."
            },
            {
              "name": "--ki-badge-info-bg",
              "description": "color used by the badge component for info background (MarsUI Surface/info_base_em_alpha: tone-500 at 12% light — the tint composites over any surface and the dark alias adapts automatically)."
            },
            {
              "name": "--ki-badge-info-border",
              "description": "color used by the badge component for info border."
            },
            {
              "name": "--ki-badge-info-fg",
              "description": "color used by the badge component for info foreground."
            },
            {
              "name": "--ki-badge-md-font-size",
              "description": "dimension used by the badge component for md font size (MarsUI UI/Caption 2: 12px at both sm and md; only xs drops to Caption 1)."
            },
            {
              "name": "--ki-badge-md-height",
              "description": "dimension used by the badge component for md height (MarsUI Tag md outer height 28px)."
            },
            {
              "name": "--ki-badge-md-line-height",
              "description": "dimension used by the badge component for md line height (MarsUI caption_2 16px)."
            },
            {
              "name": "--ki-badge-md-padding-inline",
              "description": "dimension used by the badge component for md padding inline (MarsUI total text inset 10px; paired with the border-width 0 + border-box change so the badge does not shrink)."
            },
            {
              "name": "--ki-badge-md-radius",
              "description": "dimension used by the badge component for md radius (MarsUI Tag: Radius/component/radius_sm 8px at both sm and md)."
            },
            {
              "name": "--ki-badge-neutral-bg",
              "description": "color used by the badge component for neutral background (MarsUI secondary glass Tag: Surface/special/secondary_alpha_base Gray-100 alpha light / Dark-700 blur base dark — the same fill as ki-button secondary; completes the glass bevel/blur/shadow the component already draws. material3 keeps the opaque s2 chip via its override)."
            },
            {
              "name": "--ki-badge-neutral-border",
              "description": "color used by the badge component for neutral border (MarsUI secondary Tag bevel: Outline/secondary_button_top; drawn at ki.badge.neutral.border-width)."
            },
            {
              "name": "--ki-badge-neutral-border-width",
              "description": "dimension used by the badge component for the neutral (secondary glass) border width: MarsUI draws the 1px bevel only on this type."
            },
            {
              "name": "--ki-badge-neutral-fg",
              "description": "color used by the badge component for neutral foreground."
            },
            {
              "name": "--ki-badge-sm-font-size",
              "description": "dimension used by the badge component for sm font size."
            },
            {
              "name": "--ki-badge-sm-height",
              "description": "dimension used by the badge component for sm height."
            },
            {
              "name": "--ki-badge-sm-line-height",
              "description": "dimension used by the badge component for sm line height."
            },
            {
              "name": "--ki-badge-sm-padding-inline",
              "description": "dimension used by the badge component for sm padding inline (MarsUI total text inset 8px; paired with the border-width 0 + border-box change)."
            },
            {
              "name": "--ki-badge-sm-radius",
              "description": "dimension used by the badge component for sm radius (MarsUI Tag silhouette is an 8px rounded rect — Radius/component/radius_sm — never a pill)."
            },
            {
              "name": "--ki-badge-success-bg",
              "description": "color used by the badge component for success background (MarsUI Surface/success_base_em_alpha: tone-500 at 12% light — the tint composites over any surface and the dark alias adapts automatically)."
            },
            {
              "name": "--ki-badge-success-border",
              "description": "color used by the badge component for success border."
            },
            {
              "name": "--ki-badge-success-fg",
              "description": "color used by the badge component for success foreground."
            },
            {
              "name": "--ki-badge-warning-bg",
              "description": "color used by the badge component for warning background (MarsUI Surface/warning_base_em_alpha: tone-500 at 12% light — the tint composites over any surface and the dark alias adapts automatically)."
            },
            {
              "name": "--ki-badge-warning-border",
              "description": "color used by the badge component for warning border."
            },
            {
              "name": "--ki-badge-warning-fg",
              "description": "color used by the badge component for warning foreground."
            },
            {
              "name": "--ki-effect-component-backdrop-blur",
              "description": "MarsUI Blur/24 as the component glass backdrop. Components consume this semantic name for backdrop-filter: blur(...) — never the ki.blur primitive directly (primitive-css-consumption gate)."
            },
            {
              "name": "--ki-effect-component-secondary-default-shadow",
              "description": "MarsUI Component_effect/secondary_default: drop 0/2/1.5/-0.5 plus inner White/3 0/2/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur))."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-outline-secondary-button-bottom",
              "description": "semantic color for outline secondary button bottom."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiBadge",
          "declaration": {
            "name": "KiBadge",
            "module": "dist/components/ki-badge.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-badge",
          "declaration": {
            "name": "KiBadge",
            "module": "dist/components/ki-badge.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-button.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiButton",
          "customElement": true,
          "tagName": "ki-button",
          "description": "A token-styled action button with native button semantics.",
          "whenToUse": "trigger the single main action of a view, supporting actions\nin descending hierarchy, or confirming/destructive actions through tone.",
          "whenNotToUse": "navigation, icon-only actions, persistent toggles, or\nloading/progress semantics.",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents activation, removes the button from keyboard reach, and exposes\nthe unavailable state through the internal native button.\nWhen NOT to use: do not use disabled for pending/loading semantics."
            },
            {
              "name": "name",
              "fieldName": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key contributed when this button submits its form.\nWhen NOT to use: omit when no submitter value should be sent."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\""
              },
              "default": "'md'",
              "description": "Token-backed button size. Every size keeps at least the minimum pointer\ntarget; choose the size that matches the density of the surrounding UI.\nWhen NOT to use: do not use `ki-button` for icon-only compact controls."
            },
            {
              "name": "tone",
              "fieldName": "tone",
              "type": {
                "text": "\"danger\" | \"neutral\" | \"success\""
              },
              "default": "'neutral'",
              "description": "Semantic intent for the action, independent of hierarchy. Use `success`\nfor confirming actions and `danger` for destructive actions.\nWhen NOT to use: do not use tone for visual hierarchy; use `variant`."
            },
            {
              "name": "type",
              "fieldName": "type",
              "type": {
                "text": "\"button\" | \"reset\" | \"submit\""
              },
              "default": "'submit'",
              "description": "Native form action type: `submit` submits the owning form (running\nconstraint validation and contributing `name`/`value` to the form data),\n`reset` restores field defaults, `button` never touches the form.\nCancel a submission from the form's `submit` event (`preventDefault()`);\nunlike a native button, `preventDefault()` on the `click` event does not\ncancel it. During submission `event.submitter` is a transient native\nbutton carrying this element's `name`/`value`, not the `ki-button` host.\nWhen NOT to use: use `button` when the action must never submit a form."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data value paired with `name` when this button submits its form.\nWhen NOT to use: omit when the default empty submitter value is intended."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "type": {
                "text": "\"ghost\" | \"primary\" | \"quaternary\" | \"secondary\" | \"tertiary\""
              },
              "default": "'secondary'",
              "description": "Visual hierarchy for the action. Use `primary` for the single main action\nin a view and lower-emphasis variants for supporting actions.\nWhen NOT to use: do not use variant to signal success or danger; use\n`tone` for intent."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents activation, removes the button from keyboard reach, and exposes\nthe unavailable state through the internal native button.\nWhen NOT to use: do not use disabled for pending/loading semantics.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key contributed when this button submits its form.\nWhen NOT to use: omit when no submitter value should be sent.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "privacy": "public",
              "type": {
                "text": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\""
              },
              "default": "'md'",
              "description": "Token-backed button size. Every size keeps at least the minimum pointer\ntarget; choose the size that matches the density of the surrounding UI.\nWhen NOT to use: do not use `ki-button` for icon-only compact controls.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "tone",
              "privacy": "public",
              "type": {
                "text": "\"danger\" | \"neutral\" | \"success\""
              },
              "default": "'neutral'",
              "description": "Semantic intent for the action, independent of hierarchy. Use `success`\nfor confirming actions and `danger` for destructive actions.\nWhen NOT to use: do not use tone for visual hierarchy; use `variant`.",
              "attribute": "tone",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "type",
              "privacy": "public",
              "type": {
                "text": "\"button\" | \"reset\" | \"submit\""
              },
              "default": "'submit'",
              "description": "Native form action type: `submit` submits the owning form (running\nconstraint validation and contributing `name`/`value` to the form data),\n`reset` restores field defaults, `button` never touches the form.\nCancel a submission from the form's `submit` event (`preventDefault()`);\nunlike a native button, `preventDefault()` on the `click` event does not\ncancel it. During submission `event.submitter` is a transient native\nbutton carrying this element's `name`/`value`, not the `ki-button` host.\nWhen NOT to use: use `button` when the action must never submit a form.",
              "attribute": "type",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data value paired with `name` when this button submits its form.\nWhen NOT to use: omit when the default empty submitter value is intended.",
              "attribute": "value",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "variant",
              "privacy": "public",
              "type": {
                "text": "\"ghost\" | \"primary\" | \"quaternary\" | \"secondary\" | \"tertiary\""
              },
              "default": "'secondary'",
              "description": "Visual hierarchy for the action. Use `primary` for the single main action\nin a view and lower-emphasis variants for supporting actions.\nWhen NOT to use: do not use variant to signal success or danger; use\n`tone` for intent.",
              "attribute": "variant",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Label content. This is the accessible name source."
            },
            {
              "name": "end",
              "description": "Trailing icon or media. Follows writing direction."
            },
            {
              "name": "start",
              "description": "Leading icon or media. Follows writing direction."
            }
          ],
          "cssParts": [
            {
              "name": "button",
              "description": "Internal native button."
            },
            {
              "name": "label",
              "description": "Label wrapper around the default slot."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-button-backdrop-blur",
              "description": "backdrop blur used by the button component glass variants (primary/secondary). material3 resolves to blur none via the semantic override."
            },
            {
              "name": "--ki-button-border-width",
              "description": "dimension used by the button component for border width (MarsUI bevel/outline stroke: 1px)."
            },
            {
              "name": "--ki-button-focus-ring-color",
              "description": "color used by the button component for focus ring color."
            },
            {
              "name": "--ki-button-focus-ring-offset",
              "description": "dimension used by the button component for focus ring offset."
            },
            {
              "name": "--ki-button-focus-ring-shadow",
              "description": "shadow used by the button component for the focus ring glow (MarsUI Focus/primary: 3px spread ring)."
            },
            {
              "name": "--ki-button-focus-ring-width",
              "description": "dimension used by the button component for focus ring width."
            },
            {
              "name": "--ki-button-font-family",
              "description": "font family used by the button component for font family."
            },
            {
              "name": "--ki-button-font-weight",
              "description": "font weight used by the button component for font weight."
            },
            {
              "name": "--ki-button-ghost-danger-hover-bg",
              "description": "color used by the button component for ghost danger hover background."
            },
            {
              "name": "--ki-button-ghost-danger-hover-border",
              "description": "color used by the button component for ghost danger hover border."
            },
            {
              "name": "--ki-button-ghost-danger-hover-fg",
              "description": "color used by the button component for ghost danger hover foreground."
            },
            {
              "name": "--ki-button-ghost-danger-rest-bg",
              "description": "color used by the button component for ghost danger rest background."
            },
            {
              "name": "--ki-button-ghost-danger-rest-border",
              "description": "color used by the button component for ghost danger rest border."
            },
            {
              "name": "--ki-button-ghost-danger-rest-fg",
              "description": "color used by the button component for ghost danger rest foreground."
            },
            {
              "name": "--ki-button-ghost-disabled-shadow",
              "description": "value used by the button component for ghost disabled shadow."
            },
            {
              "name": "--ki-button-ghost-hover-shadow",
              "description": "value used by the button component for ghost hover shadow."
            },
            {
              "name": "--ki-button-ghost-neutral-disabled-bg",
              "description": "color used by the button component for ghost neutral disabled background."
            },
            {
              "name": "--ki-button-ghost-neutral-disabled-border",
              "description": "color used by the button component for ghost neutral disabled border."
            },
            {
              "name": "--ki-button-ghost-neutral-disabled-fg",
              "description": "color used by the button component for ghost neutral disabled foreground."
            },
            {
              "name": "--ki-button-ghost-neutral-hover-bg",
              "description": "color used by the button component for ghost neutral hover background."
            },
            {
              "name": "--ki-button-ghost-neutral-hover-border",
              "description": "color used by the button component for ghost neutral hover border."
            },
            {
              "name": "--ki-button-ghost-neutral-hover-fg",
              "description": "color used by the button component for ghost neutral hover foreground."
            },
            {
              "name": "--ki-button-ghost-neutral-rest-bg",
              "description": "color used by the button component for ghost neutral rest background."
            },
            {
              "name": "--ki-button-ghost-neutral-rest-border",
              "description": "color used by the button component for ghost neutral rest border."
            },
            {
              "name": "--ki-button-ghost-neutral-rest-fg",
              "description": "color used by the button component for ghost neutral rest foreground."
            },
            {
              "name": "--ki-button-ghost-rest-shadow",
              "description": "value used by the button component for ghost rest shadow."
            },
            {
              "name": "--ki-button-ghost-success-hover-bg",
              "description": "color used by the button component for ghost success hover background."
            },
            {
              "name": "--ki-button-ghost-success-hover-border",
              "description": "color used by the button component for ghost success hover border."
            },
            {
              "name": "--ki-button-ghost-success-hover-fg",
              "description": "color used by the button component for ghost success hover foreground."
            },
            {
              "name": "--ki-button-ghost-success-rest-bg",
              "description": "color used by the button component for ghost success rest background."
            },
            {
              "name": "--ki-button-ghost-success-rest-border",
              "description": "color used by the button component for ghost success rest border."
            },
            {
              "name": "--ki-button-ghost-success-rest-fg",
              "description": "color used by the button component for ghost success rest foreground."
            },
            {
              "name": "--ki-button-label-padding-inline",
              "description": "dimension used by the button component for the label Text_wrap inline padding (MarsUI 8003:300: 4px each side of the label; the flex gap subtracts the same value so icon-to-text keeps the composite distance)."
            },
            {
              "name": "--ki-button-lg-font-size",
              "description": "dimension used by the button component for lg font size."
            },
            {
              "name": "--ki-button-lg-gap",
              "description": "dimension used by the button component for lg gap."
            },
            {
              "name": "--ki-button-lg-height",
              "description": "dimension used by the button component for lg height."
            },
            {
              "name": "--ki-button-lg-icon-size",
              "description": "dimension used by the button component for lg icon size."
            },
            {
              "name": "--ki-button-lg-line-height",
              "description": "dimension used by the button component for lg line height."
            },
            {
              "name": "--ki-button-lg-min-target",
              "description": "dimension used by the button component for lg min target."
            },
            {
              "name": "--ki-button-lg-padding-inline",
              "description": "dimension used by the button component for lg padding inline."
            },
            {
              "name": "--ki-button-lg-radius",
              "description": "dimension used by the button component for lg radius."
            },
            {
              "name": "--ki-button-md-font-size",
              "description": "dimension used by the button component for md font size."
            },
            {
              "name": "--ki-button-md-gap",
              "description": "dimension used by the button component for md gap (MarsUI effective icon-to-text gap 6px)."
            },
            {
              "name": "--ki-button-md-height",
              "description": "dimension used by the button component for md height."
            },
            {
              "name": "--ki-button-md-icon-size",
              "description": "dimension used by the button component for md icon size."
            },
            {
              "name": "--ki-button-md-line-height",
              "description": "dimension used by the button component for md line height."
            },
            {
              "name": "--ki-button-md-min-target",
              "description": "dimension used by the button component for md min target."
            },
            {
              "name": "--ki-button-md-padding-inline",
              "description": "dimension used by the button component for md padding inline."
            },
            {
              "name": "--ki-button-md-radius",
              "description": "dimension used by the button component for md radius."
            },
            {
              "name": "--ki-button-padding-block",
              "description": "dimension used by the button component for padding block (MarsUI: 4px in every size)."
            },
            {
              "name": "--ki-button-primary-active-overlay",
              "description": "Pressed state layer for the primary button: primary paints on a dark brand fill, so its wash lightens: the next rung above ki.surface.hover-overlay (White/5 -> White/8 light). Replaces this variant's share of a 45-cell active bg/fg/border matrix whose values were documented mirrors of rest and which WITHDREW the hover overlay rather than deepening it, an appearance legible only to a pointer user who had hovered first."
            },
            {
              "name": "--ki-button-primary-danger-hover-bg",
              "description": "color used by the button component for primary danger hover background (MarsUI: rest fill; hover lightening comes from the hover overlay)."
            },
            {
              "name": "--ki-button-primary-danger-hover-border",
              "description": "color used by the button component for primary danger hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-button-primary-danger-hover-fg",
              "description": "color used by the button component for primary danger hover foreground."
            },
            {
              "name": "--ki-button-primary-danger-rest-bg",
              "description": "color used by the button component for primary danger rest background. Deliberate deviation: Figma specifies the 500 ramp (Surface/danger_med_em #f05149) but white on 500 is ≈3.5:1 < AA 4.5:1; Kimen keeps the 700 ramp (precedent 010 D2, pending founder ratification)."
            },
            {
              "name": "--ki-button-primary-danger-rest-border",
              "description": "color used by the button component for primary danger rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-button-primary-danger-rest-fg",
              "description": "color used by the button component for primary danger rest foreground."
            },
            {
              "name": "--ki-button-primary-disabled-shadow",
              "description": "value used by the button component for primary disabled shadow."
            },
            {
              "name": "--ki-button-primary-hover-overlay",
              "description": "color used by the button component for the primary hover overlay layer (MarsUI hover_overlay, White/5)."
            },
            {
              "name": "--ki-button-primary-hover-shadow",
              "description": "shadow used by the button component for button primary hover shadow (MarsUI Component_effect/primary_hover)."
            },
            {
              "name": "--ki-button-primary-neutral-disabled-bg",
              "description": "color used by the button component for primary neutral disabled background. Deliberate deviation: Figma disabled is Surface/disabled_base_em gray.100 with gray.400 text (≈1.4:1); Kimen keeps gray.200 for contrast (precedent 010 D2, pending founder ratification)."
            },
            {
              "name": "--ki-button-primary-neutral-disabled-border",
              "description": "color used by the button component for primary neutral disabled border."
            },
            {
              "name": "--ki-button-primary-neutral-disabled-fg",
              "description": "color used by the button component for primary neutral disabled foreground. Deliberate deviation: Figma disabled text is text/base_em gray.400 (≈1.4:1 on gray.100); Kimen keeps text.muted gray.700 for readable disabled text (precedent 010 D2, pending founder ratification)."
            },
            {
              "name": "--ki-button-primary-neutral-hover-bg",
              "description": "color used by the button component for primary neutral hover background (MarsUI: rest fill; hover lightening comes from the hover overlay)."
            },
            {
              "name": "--ki-button-primary-neutral-hover-border",
              "description": "color used by the button component for primary neutral hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-button-primary-neutral-hover-fg",
              "description": "color used by the button component for primary neutral hover foreground."
            },
            {
              "name": "--ki-button-primary-neutral-rest-bg",
              "description": "color used by the button component for primary neutral rest background (MarsUI Surface/primary_med_em, brand 500)."
            },
            {
              "name": "--ki-button-primary-neutral-rest-border",
              "description": "color used by the button component for primary neutral rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-button-primary-neutral-rest-fg",
              "description": "color used by the button component for primary neutral rest foreground."
            },
            {
              "name": "--ki-button-primary-rest-border-bottom",
              "description": "color used by the button component for the primary bevel bottom edge (MarsUI Outline/primary_button_bottom)."
            },
            {
              "name": "--ki-button-primary-rest-shadow",
              "description": "shadow used by the button component for button primary rest shadow (MarsUI Component_effect/primary_default)."
            },
            {
              "name": "--ki-button-primary-success-hover-bg",
              "description": "color used by the button component for primary success hover background (MarsUI: rest fill; hover lightening comes from the hover overlay)."
            },
            {
              "name": "--ki-button-primary-success-hover-border",
              "description": "color used by the button component for primary success hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-button-primary-success-hover-fg",
              "description": "color used by the button component for primary success hover foreground."
            },
            {
              "name": "--ki-button-primary-success-rest-bg",
              "description": "color used by the button component for primary success rest background. Deliberate deviation: Figma specifies the 500 ramp (Surface/success_med_em #409b3f) but white on 500 is ≈3.5:1 < AA 4.5:1; Kimen keeps the 700 ramp (precedent 010 D2, pending founder ratification)."
            },
            {
              "name": "--ki-button-primary-success-rest-border",
              "description": "color used by the button component for primary success rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-button-primary-success-rest-fg",
              "description": "color used by the button component for primary success rest foreground."
            },
            {
              "name": "--ki-button-quaternary-danger-hover-bg",
              "description": "color used by the button component for quaternary danger hover background."
            },
            {
              "name": "--ki-button-quaternary-danger-hover-border",
              "description": "color used by the button component for quaternary danger hover border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-button-quaternary-danger-hover-fg",
              "description": "color used by the button component for quaternary danger hover foreground."
            },
            {
              "name": "--ki-button-quaternary-danger-rest-bg",
              "description": "color used by the button component for quaternary danger rest background."
            },
            {
              "name": "--ki-button-quaternary-danger-rest-border",
              "description": "color used by the button component for quaternary danger rest border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-button-quaternary-danger-rest-fg",
              "description": "color used by the button component for quaternary danger rest foreground."
            },
            {
              "name": "--ki-button-quaternary-disabled-shadow",
              "description": "value used by the button component for quaternary disabled shadow."
            },
            {
              "name": "--ki-button-quaternary-hover-shadow",
              "description": "value used by the button component for quaternary hover shadow."
            },
            {
              "name": "--ki-button-quaternary-neutral-disabled-bg",
              "description": "color used by the button component for quaternary neutral disabled background."
            },
            {
              "name": "--ki-button-quaternary-neutral-disabled-border",
              "description": "color used by the button component for quaternary neutral disabled border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-button-quaternary-neutral-disabled-fg",
              "description": "color used by the button component for quaternary neutral disabled foreground."
            },
            {
              "name": "--ki-button-quaternary-neutral-hover-bg",
              "description": "color used by the button component for quaternary neutral hover background (MarsUI hover mechanism: hover_overlay_inverse Black/3 wash over the transparent rest fill)."
            },
            {
              "name": "--ki-button-quaternary-neutral-hover-border",
              "description": "color used by the button component for quaternary neutral hover border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-button-quaternary-neutral-hover-fg",
              "description": "color used by the button component for quaternary neutral hover foreground (MarsUI quaternary label text/med_em gray; the outlined-purple rest identity was a pre-master synthesis)."
            },
            {
              "name": "--ki-button-quaternary-neutral-rest-bg",
              "description": "color used by the button component for quaternary neutral rest background."
            },
            {
              "name": "--ki-button-quaternary-neutral-rest-border",
              "description": "color used by the button component for quaternary neutral rest border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-button-quaternary-neutral-rest-fg",
              "description": "color used by the button component for quaternary neutral rest foreground (MarsUI quaternary label text/med_em gray; the outlined-purple rest identity was a pre-master synthesis)."
            },
            {
              "name": "--ki-button-quaternary-rest-shadow",
              "description": "value used by the button component for quaternary rest shadow."
            },
            {
              "name": "--ki-button-quaternary-success-hover-bg",
              "description": "color used by the button component for quaternary success hover background."
            },
            {
              "name": "--ki-button-quaternary-success-hover-border",
              "description": "color used by the button component for quaternary success hover border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-button-quaternary-success-hover-fg",
              "description": "color used by the button component for quaternary success hover foreground."
            },
            {
              "name": "--ki-button-quaternary-success-rest-bg",
              "description": "color used by the button component for quaternary success rest background."
            },
            {
              "name": "--ki-button-quaternary-success-rest-border",
              "description": "color used by the button component for quaternary success rest border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-button-quaternary-success-rest-fg",
              "description": "color used by the button component for quaternary success rest foreground."
            },
            {
              "name": "--ki-button-secondary-active-overlay",
              "description": "Pressed state layer for the secondary button: secondary paints on a light fill, so its wash darkens: the next rung above ki.surface.hover-overlay-inverse (Black/3 -> Black/5 light). Replaces this variant's share of a 45-cell active bg/fg/border matrix whose values were documented mirrors of rest and which WITHDREW the hover overlay rather than deepening it, an appearance legible only to a pointer user who had hovered first."
            },
            {
              "name": "--ki-button-secondary-danger-hover-bg",
              "description": "color used by the button component for secondary danger hover background."
            },
            {
              "name": "--ki-button-secondary-danger-hover-border",
              "description": "color used by the button component for secondary danger hover border (MarsUI bevel top/inline edge, variant trait)."
            },
            {
              "name": "--ki-button-secondary-danger-hover-fg",
              "description": "color used by the button component for secondary danger hover foreground."
            },
            {
              "name": "--ki-button-secondary-danger-rest-bg",
              "description": "color used by the button component for secondary danger rest background."
            },
            {
              "name": "--ki-button-secondary-danger-rest-border",
              "description": "color used by the button component for secondary danger rest border (MarsUI bevel top/inline edge, variant trait)."
            },
            {
              "name": "--ki-button-secondary-danger-rest-fg",
              "description": "color used by the button component for secondary danger rest foreground."
            },
            {
              "name": "--ki-button-secondary-disabled-shadow",
              "description": "value used by the button component for secondary disabled shadow."
            },
            {
              "name": "--ki-button-secondary-hover-overlay",
              "description": "color used by the button component for the secondary hover overlay layer (MarsUI hover_overlay_inverse, Black/3)."
            },
            {
              "name": "--ki-button-secondary-hover-shadow",
              "description": "shadow used by the button component for secondary hover shadow (MarsUI Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-button-secondary-neutral-disabled-bg",
              "description": "color used by the button component for secondary neutral disabled background."
            },
            {
              "name": "--ki-button-secondary-neutral-disabled-border",
              "description": "color used by the button component for secondary neutral disabled border."
            },
            {
              "name": "--ki-button-secondary-neutral-disabled-fg",
              "description": "color used by the button component for secondary neutral disabled foreground."
            },
            {
              "name": "--ki-button-secondary-neutral-hover-bg",
              "description": "color used by the button component for secondary neutral hover background (MarsUI: rest fill; hover darkening comes from the hover overlay)."
            },
            {
              "name": "--ki-button-secondary-neutral-hover-border",
              "description": "color used by the button component for secondary neutral hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-button-secondary-neutral-hover-fg",
              "description": "color used by the button component for secondary neutral hover foreground (MarsUI text/high_em)."
            },
            {
              "name": "--ki-button-secondary-neutral-rest-bg",
              "description": "color used by the button component for secondary neutral rest background (MarsUI Surface/special/secondary_alpha_base: gray glass, not a brand tint)."
            },
            {
              "name": "--ki-button-secondary-neutral-rest-border",
              "description": "color used by the button component for secondary neutral rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-button-secondary-neutral-rest-fg",
              "description": "color used by the button component for secondary neutral rest foreground (MarsUI text/high_em)."
            },
            {
              "name": "--ki-button-secondary-rest-border-bottom",
              "description": "color used by the button component for the secondary bevel bottom edge (MarsUI Outline/secondary_button_bottom)."
            },
            {
              "name": "--ki-button-secondary-rest-shadow",
              "description": "shadow used by the button component for secondary rest shadow (MarsUI Component_effect/secondary_default)."
            },
            {
              "name": "--ki-button-secondary-success-hover-bg",
              "description": "color used by the button component for secondary success hover background."
            },
            {
              "name": "--ki-button-secondary-success-hover-border",
              "description": "color used by the button component for secondary success hover border (MarsUI bevel top/inline edge, variant trait)."
            },
            {
              "name": "--ki-button-secondary-success-hover-fg",
              "description": "color used by the button component for secondary success hover foreground."
            },
            {
              "name": "--ki-button-secondary-success-rest-bg",
              "description": "color used by the button component for secondary success rest background."
            },
            {
              "name": "--ki-button-secondary-success-rest-border",
              "description": "color used by the button component for secondary success rest border (MarsUI bevel top/inline edge, variant trait)."
            },
            {
              "name": "--ki-button-secondary-success-rest-fg",
              "description": "color used by the button component for secondary success rest foreground."
            },
            {
              "name": "--ki-button-sm-font-size",
              "description": "dimension used by the button component for sm font size."
            },
            {
              "name": "--ki-button-sm-gap",
              "description": "dimension used by the button component for sm gap (interpolated between xs and md effective gaps)."
            },
            {
              "name": "--ki-button-sm-height",
              "description": "dimension used by the button component for sm height."
            },
            {
              "name": "--ki-button-sm-icon-size",
              "description": "dimension used by the button component for sm icon size."
            },
            {
              "name": "--ki-button-sm-line-height",
              "description": "dimension used by the button component for sm line height."
            },
            {
              "name": "--ki-button-sm-min-target",
              "description": "dimension used by the button component for sm min target."
            },
            {
              "name": "--ki-button-sm-padding-inline",
              "description": "dimension used by the button component for sm padding inline."
            },
            {
              "name": "--ki-button-sm-radius",
              "description": "dimension used by the button component for sm radius."
            },
            {
              "name": "--ki-button-tertiary-danger-hover-bg",
              "description": "color used by the button component for tertiary danger hover background (one light step over the rest fill; dark keeps the rest fill — the hover signal is Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-button-tertiary-danger-hover-border",
              "description": "color used by the button component for tertiary danger hover border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-button-tertiary-danger-hover-fg",
              "description": "color used by the button component for tertiary danger hover foreground."
            },
            {
              "name": "--ki-button-tertiary-danger-rest-bg",
              "description": "color used by the button component for tertiary danger rest background (MarsUI tertiary fill Surface/special/light-s0_dark-s2: White light, Dark/800 dark)."
            },
            {
              "name": "--ki-button-tertiary-danger-rest-border",
              "description": "color used by the button component for tertiary danger rest border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-button-tertiary-danger-rest-fg",
              "description": "color used by the button component for tertiary danger rest foreground."
            },
            {
              "name": "--ki-button-tertiary-disabled-shadow",
              "description": "value used by the button component for tertiary disabled shadow."
            },
            {
              "name": "--ki-button-tertiary-hover-shadow",
              "description": "shadow used by the button component for tertiary hover shadow (MarsUI Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-button-tertiary-neutral-disabled-bg",
              "description": "color used by the button component for tertiary neutral disabled background."
            },
            {
              "name": "--ki-button-tertiary-neutral-disabled-border",
              "description": "color used by the button component for tertiary neutral disabled border."
            },
            {
              "name": "--ki-button-tertiary-neutral-disabled-fg",
              "description": "color used by the button component for tertiary neutral disabled foreground."
            },
            {
              "name": "--ki-button-tertiary-neutral-hover-bg",
              "description": "color used by the button component for tertiary neutral hover background (one light step over the rest fill; dark keeps the rest fill — the hover signal is Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-button-tertiary-neutral-hover-border",
              "description": "color used by the button component for tertiary neutral hover border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-button-tertiary-neutral-hover-fg",
              "description": "color used by the button component for tertiary neutral hover foreground (MarsUI tertiary label text/med_em gray — Kimen tertiary maps to Figma tertiary; the purple-label row is primary_flat, documented alternative)."
            },
            {
              "name": "--ki-button-tertiary-neutral-rest-bg",
              "description": "color used by the button component for tertiary neutral rest background (MarsUI tertiary fill Surface/special/light-s0_dark-s2: White light, Dark/800 dark)."
            },
            {
              "name": "--ki-button-tertiary-neutral-rest-border",
              "description": "color used by the button component for tertiary neutral rest border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-button-tertiary-neutral-rest-fg",
              "description": "color used by the button component for tertiary neutral rest foreground (MarsUI tertiary label text/med_em gray — Kimen tertiary maps to Figma tertiary; the purple-label row is primary_flat, documented alternative)."
            },
            {
              "name": "--ki-button-tertiary-rest-border-bottom",
              "description": "color used by the button component for the tertiary bevel bottom edge (MarsUI Outline/secondary_button_bottom — same bevel pair as secondary)."
            },
            {
              "name": "--ki-button-tertiary-rest-shadow",
              "description": "shadow used by the button component for tertiary rest shadow (MarsUI Component_effect/secondary_default — replaces the migrated M2-era stack, which the material3 theme keeps via its own override)."
            },
            {
              "name": "--ki-button-tertiary-success-hover-bg",
              "description": "color used by the button component for tertiary success hover background (one light step over the rest fill; dark keeps the rest fill — the hover signal is Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-button-tertiary-success-hover-border",
              "description": "color used by the button component for tertiary success hover border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-button-tertiary-success-hover-fg",
              "description": "color used by the button component for tertiary success hover foreground."
            },
            {
              "name": "--ki-button-tertiary-success-rest-bg",
              "description": "color used by the button component for tertiary success rest background (MarsUI tertiary fill Surface/special/light-s0_dark-s2: White light, Dark/800 dark)."
            },
            {
              "name": "--ki-button-tertiary-success-rest-border",
              "description": "color used by the button component for tertiary success rest border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-button-tertiary-success-rest-fg",
              "description": "color used by the button component for tertiary success rest foreground."
            },
            {
              "name": "--ki-button-xl-font-size",
              "description": "dimension used by the button component for xl font size."
            },
            {
              "name": "--ki-button-xl-gap",
              "description": "dimension used by the button component for xl gap (MarsUI effective icon-to-text gap 8px)."
            },
            {
              "name": "--ki-button-xl-height",
              "description": "dimension used by the button component for xl height."
            },
            {
              "name": "--ki-button-xl-icon-size",
              "description": "dimension used by the button component for xl icon size."
            },
            {
              "name": "--ki-button-xl-line-height",
              "description": "dimension used by the button component for xl line height."
            },
            {
              "name": "--ki-button-xl-min-target",
              "description": "dimension used by the button component for xl min target."
            },
            {
              "name": "--ki-button-xl-padding-inline",
              "description": "dimension used by the button component for xl padding inline (MarsUI 14px)."
            },
            {
              "name": "--ki-button-xl-radius",
              "description": "dimension used by the button component for xl radius."
            },
            {
              "name": "--ki-button-xs-font-size",
              "description": "dimension used by the button component for xs font size (MarsUI caption_1 10px)."
            },
            {
              "name": "--ki-button-xs-gap",
              "description": "dimension used by the button component for xs gap (MarsUI effective icon-to-text gap 4px)."
            },
            {
              "name": "--ki-button-xs-height",
              "description": "dimension used by the button component for xs height."
            },
            {
              "name": "--ki-button-xs-icon-size",
              "description": "dimension used by the button component for xs icon size (MarsUI 14px)."
            },
            {
              "name": "--ki-button-xs-line-height",
              "description": "dimension used by the button component for xs line height (MarsUI caption_1 16px)."
            },
            {
              "name": "--ki-button-xs-min-target",
              "description": "dimension used by the button component for xs min target."
            },
            {
              "name": "--ki-button-xs-padding-inline",
              "description": "dimension used by the button component for xs padding inline."
            },
            {
              "name": "--ki-button-xs-radius",
              "description": "dimension used by the button component for xs radius."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-transparent-inverse",
              "description": "semantic color for transparent inverse."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiButton",
          "declaration": {
            "name": "KiButton",
            "module": "dist/components/ki-button.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-button",
          "declaration": {
            "name": "KiButton",
            "module": "dist/components/ki-button.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-card.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiCard",
          "customElement": true,
          "tagName": "ki-card",
          "description": "A non-interactive card surface for grouping related content.",
          "whenToUse": "group related media, heading, supporting text and actions into\none scannable surface visually distinct from the page; fill any subset of\nregions. Supply the heading element yourself in the `header` slot — plain\ntext slotted there carries no heading semantics for assistive technology.",
          "whenNotToUse": "as a button or link target, form control, fieldset, page\nlandmark, section replacement or nested card. For an interactive card, slot\nthe button or link INSIDE a region (whole-card interactivity is a future\nfeature, not this component).",
          "attributes": [],
          "members": [],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Body region for supporting text or arbitrary composed content."
            },
            {
              "name": "footer",
              "description": "Closing region for actions such as `ki-button`; no dedicated actions slot exists in v1."
            },
            {
              "name": "header",
              "description": "Title region. The author supplies the heading element at the surrounding document level; plain text here carries no heading semantics."
            },
            {
              "name": "media",
              "description": "Leading visual region for an image, video or illustration."
            }
          ],
          "cssParts": [
            {
              "name": "body",
              "description": "Body region wrapper around the default slot."
            },
            {
              "name": "card",
              "description": "Card surface: background, border, radius, elevation and region gap."
            },
            {
              "name": "footer",
              "description": "Footer region wrapper."
            },
            {
              "name": "header",
              "description": "Header region wrapper."
            },
            {
              "name": "media",
              "description": "Media region wrapper."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-card-bg",
              "description": "color used by the card component for background (MarsUI Dashboard masters bind Surface/special/light-s0_dark-s1: white light / Dark/900 dark; #f9f9fa is the nested media panel, so the old s1 value inverted the surface hierarchy)."
            },
            {
              "name": "--ki-card-body-padding",
              "description": "dimension used by the card component for body padding."
            },
            {
              "name": "--ki-card-border-color",
              "description": "color used by the card component for border color (MarsUI Outline/base_em hairline — painted on large Chart cards; Dashboard_info leaves width 0, which stays the default via ki.card.border-width)."
            },
            {
              "name": "--ki-card-border-width",
              "description": "dimension used by the card component for border width."
            },
            {
              "name": "--ki-card-elevation",
              "description": "Card resting elevation: MarsUI elevation ramp level e1 (brief §5, drop 0/1/1/-0.5 in the scheme shadow color; replaces the migrated M2-era shadow)."
            },
            {
              "name": "--ki-card-fg",
              "description": "color used by the card component for foreground."
            },
            {
              "name": "--ki-card-footer-padding",
              "description": "dimension used by the card component for footer padding."
            },
            {
              "name": "--ki-card-gap",
              "description": "dimension used by the card component for gap (MarsUI Dashboard_info/Chart inter-region rhythm 12px; material3 keeps zero via its override)."
            },
            {
              "name": "--ki-card-header-padding",
              "description": "dimension used by the card component for header padding."
            },
            {
              "name": "--ki-card-media-padding",
              "description": "dimension used by the card component for media padding (MarsUI Dashboard masters inset media panels 8px inline; material3 keeps full-bleed zero via its override)."
            },
            {
              "name": "--ki-card-media-radius",
              "description": "dimension used by the card component for slotted media corner radius (MarsUI nested media panel Radius/big_component/radius_sm 20px; formalizes the fallback ki-card.css already consumes)."
            },
            {
              "name": "--ki-card-padding-block",
              "description": "dimension used by the card component for the surface block padding (16px carried by the card surface itself so stacked region paddings no longer double to 32px; formalizes the fallback ki-card.css already consumes)."
            },
            {
              "name": "--ki-card-radius",
              "description": "dimension used by the card component for radius (MarsUI card surfaces ride the big_component scale: Dashboard_info 400x128 binds radius_xs 16px; large Chart cards anchor radius_lg 28px)."
            },
            {
              "name": "--ki-elevation-e2",
              "description": "MarsUI Elevation/e2 (cumulative: e1 layers plus 0/3/3/-1.5)."
            },
            {
              "name": "--ki-motion-distance-sm",
              "description": "Motion travel distance sm (4px): small slide/settle offsets."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-duration-medium-1",
              "description": "M3 md.sys.motion.duration.medium1 (250ms). onmars: MarsUI moderate step (240ms, 2x the 120ms base)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiCard",
          "declaration": {
            "name": "KiCard",
            "module": "dist/components/ki-card.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-card",
          "declaration": {
            "name": "KiCard",
            "module": "dist/components/ki-card.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-checkbox.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiCheckbox",
          "customElement": true,
          "tagName": "ki-checkbox",
          "description": "A form-associated checkbox for selecting independent options.",
          "whenToUse": "selecting one or more independent options that a form submits\nlater, including a \"select all\" parent that presents partial selection with\n`indeterminate`. Always provide a visible label in the default slot.",
          "whenNotToUse": "a single mutually exclusive choice, an immediate on/off\neffect, triggering an action, unlabeled/icon-only usage, or\n`checked=\"false\"` to mean unchecked. Boolean attributes use presence\nsemantics; omit `checked` to express unchecked.",
          "attributes": [
            {
              "name": "checked",
              "fieldName": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Live binary selection state. User activation by pointer, slotted label or\nSpace toggles it with native checkbox parity and emits composed `input`\nbefore composed `change`. Boolean presence semantics apply:\n`checked=\"false\"` still renders checked; omit the attribute to express\nunchecked. Programmatic assignment is silent.\nWhen NOT to use: do not treat this reflected attribute as a native\n`defaultChecked`; reset uses the baseline captured at form association."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents activation, removes the checkbox from keyboard reach, exposes the\nunavailable state, and excludes it from form data.\nWhen NOT to use: do not use disabled for validation errors or pending\nstate."
            },
            {
              "name": "indeterminate",
              "fieldName": "indeterminate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Presentation-only mixed state. It renders the dash mark, is forwarded to\nthe internal native input for mixed assistive-technology exposure, and\nnever changes the submitted value. Any user toggle clears it and removes\nthe reflected attribute.\nWhen NOT to use: do not submit or persist `indeterminate` as a third\nvalue; model data remains binary through `checked`."
            },
            {
              "name": "name",
              "fieldName": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key contributed when the checkbox is checked.\nWhen NOT to use: omit when the checkbox should not submit a value."
            },
            {
              "name": "required",
              "fieldName": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Requires the checkbox to be checked before form submission can proceed.\nThe invalid appearance appears after a blocked submission attempt or an\ninvalidating user toggle, never on initial render.\nWhen NOT to use: do not use required to express group-level rules; compose\nthose at the form/application layer."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data value paired with `name` when checked. If omitted, the submitted\nvalue is `on`, matching native checkbox behavior.\nWhen NOT to use: do not encode the unchecked state here; unchecked\ncheckboxes contribute no form entry."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "checked",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Live binary selection state. User activation by pointer, slotted label or\nSpace toggles it with native checkbox parity and emits composed `input`\nbefore composed `change`. Boolean presence semantics apply:\n`checked=\"false\"` still renders checked; omit the attribute to express\nunchecked. Programmatic assignment is silent.\nWhen NOT to use: do not treat this reflected attribute as a native\n`defaultChecked`; reset uses the baseline captured at form association.",
              "attribute": "checked",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents activation, removes the checkbox from keyboard reach, exposes the\nunavailable state, and excludes it from form data.\nWhen NOT to use: do not use disabled for validation errors or pending\nstate.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "indeterminate",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Presentation-only mixed state. It renders the dash mark, is forwarded to\nthe internal native input for mixed assistive-technology exposure, and\nnever changes the submitted value. Any user toggle clears it and removes\nthe reflected attribute.\nWhen NOT to use: do not submit or persist `indeterminate` as a third\nvalue; model data remains binary through `checked`.",
              "attribute": "indeterminate",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key contributed when the checkbox is checked.\nWhen NOT to use: omit when the checkbox should not submit a value.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "required",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Requires the checkbox to be checked before form submission can proceed.\nThe invalid appearance appears after a blocked submission attempt or an\ninvalidating user toggle, never on initial render.\nWhen NOT to use: do not use required to express group-level rules; compose\nthose at the form/application layer.",
              "attribute": "required",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data value paired with `name` when checked. If omitted, the submitted\nvalue is `on`, matching native checkbox behavior.\nWhen NOT to use: do not encode the unchecked state here; unchecked\ncheckboxes contribute no form entry.",
              "attribute": "value",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Visible label content. This is the accessible name source and a\nnative activation surface."
            }
          ],
          "cssParts": [
            {
              "name": "control",
              "description": "Visual checkbox box, border, focus ring and currentColor marks."
            },
            {
              "name": "label",
              "description": "Label wrapper around the default slot."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-checkbox-border-width",
              "description": "dimension used by the checkbox component for border width."
            },
            {
              "name": "--ki-checkbox-checked-active-bg",
              "description": "color used by the checkbox component for checked active background."
            },
            {
              "name": "--ki-checkbox-checked-active-border",
              "description": "color used by the checkbox component for checked active border."
            },
            {
              "name": "--ki-checkbox-checked-active-fg",
              "description": "color used by the checkbox component for checked active foreground."
            },
            {
              "name": "--ki-checkbox-checked-disabled-bg",
              "description": "color used by the checkbox component for checked disabled background (MarsUI Surface/disabled_med_em Gray/300 light / White-18 dark)."
            },
            {
              "name": "--ki-checkbox-checked-disabled-border",
              "description": "color used by the checkbox component for checked disabled border."
            },
            {
              "name": "--ki-checkbox-checked-disabled-fg",
              "description": "color used by the checkbox component for checked disabled mark (MarsUI Text/base_em Gray/400 light / White-32 dark; retires the deprecated ki.text.muted alias)."
            },
            {
              "name": "--ki-checkbox-checked-hover-bg",
              "description": "color used by the checkbox component for checked hover background."
            },
            {
              "name": "--ki-checkbox-checked-hover-border",
              "description": "color used by the checkbox component for checked hover border."
            },
            {
              "name": "--ki-checkbox-checked-hover-fg",
              "description": "color used by the checkbox component for checked hover foreground."
            },
            {
              "name": "--ki-checkbox-checked-rest-bg",
              "description": "color used by the checkbox component for checked rest background."
            },
            {
              "name": "--ki-checkbox-checked-rest-border",
              "description": "color used by the checkbox component for checked rest border."
            },
            {
              "name": "--ki-checkbox-checked-rest-fg",
              "description": "color used by the checkbox component for checked rest foreground."
            },
            {
              "name": "--ki-checkbox-control-size",
              "description": "dimension used by the checkbox component for control size."
            },
            {
              "name": "--ki-checkbox-focus-ring-color",
              "description": "color used by the checkbox component for focus ring color."
            },
            {
              "name": "--ki-checkbox-focus-ring-offset",
              "description": "dimension used by the checkbox component for focus ring offset."
            },
            {
              "name": "--ki-checkbox-focus-ring-shadow",
              "description": "shadow used by the checkbox component for the focus ring glow (MarsUI Focus/primary: 3px spread ring at 20% — see ki.focus.primary. specs/002-ki-button/design-extraction.md §2.5 recorded 40%, having read the alpha off the Dark canvas mode, same double mechanism as ki-button: glow plus the opaque indicator)."
            },
            {
              "name": "--ki-checkbox-focus-ring-width",
              "description": "dimension used by the checkbox component for focus ring width."
            },
            {
              "name": "--ki-checkbox-gap",
              "description": "dimension used by the checkbox component for gap (MarsUI md label pairing: Space/xl 12px for the 20px box)."
            },
            {
              "name": "--ki-checkbox-indeterminate-active-bg",
              "description": "color used by the checkbox component for indeterminate active background (MarsUI Surface/primary_low_em_alpha: brand-500 at 20% light / 56% dark; the master defines no indeterminate hover, so every state keeps the tint)."
            },
            {
              "name": "--ki-checkbox-indeterminate-active-border",
              "description": "color used by the checkbox component for indeterminate active border (Figma draws no border on the 20% tint, but the tint alone measures ~1.3:1 against light pages; the opaque brand ring keeps the WCAG 1.4.11 3:1 control boundary — gate-driven declared deviation, same law that pinned ki.outline.control)."
            },
            {
              "name": "--ki-checkbox-indeterminate-active-fg",
              "description": "color used by the checkbox component for indeterminate active dash (Figma binds Text/primary_med_em brand-500, which measures 2.7:1 against the 56% tint in dark; one em step up keeps the 3:1 non-text law in both schemes — gate-driven compliant alternative)."
            },
            {
              "name": "--ki-checkbox-indeterminate-disabled-bg",
              "description": "color used by the checkbox component for indeterminate disabled background (MarsUI Surface/disabled_med_em Gray/300 light / White-18 dark)."
            },
            {
              "name": "--ki-checkbox-indeterminate-disabled-border",
              "description": "color used by the checkbox component for indeterminate disabled border."
            },
            {
              "name": "--ki-checkbox-indeterminate-disabled-fg",
              "description": "color used by the checkbox component for indeterminate disabled mark (MarsUI Text/base_em Gray/400 light / White-32 dark; retires the deprecated ki.text.muted alias)."
            },
            {
              "name": "--ki-checkbox-indeterminate-hover-bg",
              "description": "color used by the checkbox component for indeterminate hover background (MarsUI Surface/primary_low_em_alpha: brand-500 at 20% light / 56% dark; the master defines no indeterminate hover, so every state keeps the tint)."
            },
            {
              "name": "--ki-checkbox-indeterminate-hover-border",
              "description": "color used by the checkbox component for indeterminate hover border (Figma draws no border on the 20% tint, but the tint alone measures ~1.3:1 against light pages; the opaque brand ring keeps the WCAG 1.4.11 3:1 control boundary — gate-driven declared deviation, same law that pinned ki.outline.control)."
            },
            {
              "name": "--ki-checkbox-indeterminate-hover-fg",
              "description": "color used by the checkbox component for indeterminate hover dash (Figma binds Text/primary_med_em brand-500, which measures 2.7:1 against the 56% tint in dark; one em step up keeps the 3:1 non-text law in both schemes — gate-driven compliant alternative)."
            },
            {
              "name": "--ki-checkbox-indeterminate-rest-bg",
              "description": "color used by the checkbox component for indeterminate rest background (MarsUI Surface/primary_low_em_alpha: brand-500 at 20% light / 56% dark; the master defines no indeterminate hover, so every state keeps the tint)."
            },
            {
              "name": "--ki-checkbox-indeterminate-rest-border",
              "description": "color used by the checkbox component for indeterminate rest border (Figma draws no border on the 20% tint, but the tint alone measures ~1.3:1 against light pages; the opaque brand ring keeps the WCAG 1.4.11 3:1 control boundary — gate-driven declared deviation, same law that pinned ki.outline.control)."
            },
            {
              "name": "--ki-checkbox-indeterminate-rest-fg",
              "description": "color used by the checkbox component for indeterminate rest dash (Figma binds Text/primary_med_em brand-500, which measures 2.7:1 against the 56% tint in dark; one em step up keeps the 3:1 non-text law in both schemes — gate-driven compliant alternative)."
            },
            {
              "name": "--ki-checkbox-invalid-bg",
              "description": "color used by the checkbox component for invalid background."
            },
            {
              "name": "--ki-checkbox-invalid-border",
              "description": "color used by the checkbox component for invalid border."
            },
            {
              "name": "--ki-checkbox-invalid-fg",
              "description": "color used by the checkbox component for invalid foreground."
            },
            {
              "name": "--ki-checkbox-label-font-size",
              "description": "dimension used by the checkbox component for label font size (MarsUI md pairing: body_2 15px for the 20px box)."
            },
            {
              "name": "--ki-checkbox-label-font-weight",
              "description": "font weight used by the checkbox component for label font weight."
            },
            {
              "name": "--ki-checkbox-label-line-height",
              "description": "dimension used by the checkbox component for label line height (MarsUI body_2 24px)."
            },
            {
              "name": "--ki-checkbox-min-target",
              "description": "dimension used by the checkbox component for min target."
            },
            {
              "name": "--ki-checkbox-radius",
              "description": "dimension used by the checkbox component for radius (MarsUI Radius/radius_sm 6px bound on the box; Figma corner smoothing is an accepted rasterization gap)."
            },
            {
              "name": "--ki-checkbox-unchecked-active-bg",
              "description": "color used by the checkbox component for unchecked active background."
            },
            {
              "name": "--ki-checkbox-unchecked-active-border",
              "description": "color used by the checkbox component for unchecked active border."
            },
            {
              "name": "--ki-checkbox-unchecked-active-fg",
              "description": "color used by the checkbox component for unchecked active foreground."
            },
            {
              "name": "--ki-checkbox-unchecked-disabled-bg",
              "description": "color used by the checkbox component for unchecked disabled background (MarsUI Surface/disabled_med_em Gray/300 light / White-18 dark)."
            },
            {
              "name": "--ki-checkbox-unchecked-disabled-border",
              "description": "color used by the checkbox component for unchecked disabled border."
            },
            {
              "name": "--ki-checkbox-unchecked-disabled-fg",
              "description": "color used by the checkbox component for unchecked disabled mark (MarsUI Text/base_em Gray/400 light / White-32 dark; retires the deprecated ki.text.muted alias)."
            },
            {
              "name": "--ki-checkbox-unchecked-hover-bg",
              "description": "color used by the checkbox component for unchecked hover background."
            },
            {
              "name": "--ki-checkbox-unchecked-hover-border",
              "description": "color used by the checkbox component for unchecked hover border."
            },
            {
              "name": "--ki-checkbox-unchecked-hover-fg",
              "description": "color used by the checkbox component for unchecked hover foreground."
            },
            {
              "name": "--ki-checkbox-unchecked-rest-bg",
              "description": "color used by the checkbox component for unchecked rest background."
            },
            {
              "name": "--ki-checkbox-unchecked-rest-border",
              "description": "color used by the checkbox component for unchecked rest border."
            },
            {
              "name": "--ki-checkbox-unchecked-rest-fg",
              "description": "color used by the checkbox component for unchecked rest foreground."
            },
            {
              "name": "--ki-effect-component-primary-default-shadow",
              "description": "MarsUI Component_effect/primary_default: drop 0/1/1/-0.5 plus inner White/12 0/3/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur)) — CSS cannot mix backdrop blur into box-shadow."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-spring",
              "description": "Gentle overshoot curve for glass pops and playful state transfers. onmars: ki.easing.spring; no MarsUI Figma motion variable exists (documented completion of the motion language)."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-surface-special-dark-s0-light-s2",
              "description": "semantic color for surface special dark s0 light s2."
            },
            {
              "name": "--ki-surface-special-light-s0-dark-s4",
              "description": "semantic color for surface special light s0 dark s4."
            },
            {
              "name": "--ki-text-high-em",
              "description": "semantic color for text high em."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiCheckbox",
          "declaration": {
            "name": "KiCheckbox",
            "module": "dist/components/ki-checkbox.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-checkbox",
          "declaration": {
            "name": "KiCheckbox",
            "module": "dist/components/ki-checkbox.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-dialog.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiDialog",
          "customElement": true,
          "tagName": "ki-dialog",
          "description": "A modal dialog for one interrupting decision or short focused task.",
          "whenToUse": "destructive confirmations, blocking choices, and brief\ncritical input that must be resolved before returning to the page. Always\nprovide a `heading`, place actions in the `footer` slot, wire each footer\naction to `close()`, and in destructive confirmations put `autofocus` on\nthe least destructive action.",
          "whenNotToUse": "non-blocking feedback (`ki-alert`, future `ki-toast`),\nsupplementary hints (`ki-tooltip`), long forms or multi-step flows\n(navigate or use a future full-screen variant), menus, or pickers.",
          "attributes": [
            {
              "name": "close-on-backdrop",
              "fieldName": "closeOnBackdrop",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Opts into backdrop light-dismiss. Omit this attribute for critical\nconfirmations; `close-on-backdrop=\"false\"` still enables it.\nWhen to use: low-risk dialogs where an outside click may safely dismiss.\nWhen NOT to use: destructive confirmations or decisions that should not be\nlost to a stray click; omit the attribute entirely rather than setting it\nto `\"false\"`."
            },
            {
              "name": "heading",
              "fieldName": "heading",
              "type": {
                "text": "string | undefined"
              },
              "description": "Visible dialog title and accessible-name source. Always provide a heading;\nan empty value intentionally leaves the native dialog unnamed.\nWhen to use: name the interrupting decision, for example \"Delete\naccount?\". When NOT to use: do not omit it for production dialogs; APG\nmodal dialogs require an accessible name."
            },
            {
              "name": "open",
              "fieldName": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Reflected live modal state. Add it or call `show()` to open; remove it or\ncall `close()` to close. When open, the native dialog enters the top layer\nand the page behind is inert.\nWhen to use: bind application state to the dialog's modal lifecycle.\nWhen NOT to use: do not set the internal native `<dialog open>` attribute;\nthe host attribute is the only public source of truth."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "closeOnBackdrop",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Opts into backdrop light-dismiss. Omit this attribute for critical\nconfirmations; `close-on-backdrop=\"false\"` still enables it.\nWhen to use: low-risk dialogs where an outside click may safely dismiss.\nWhen NOT to use: destructive confirmations or decisions that should not be\nlost to a stray click; omit the attribute entirely rather than setting it\nto `\"false\"`.",
              "attribute": "close-on-backdrop",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "heading",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Visible dialog title and accessible-name source. Always provide a heading;\nan empty value intentionally leaves the native dialog unnamed.\nWhen to use: name the interrupting decision, for example \"Delete\naccount?\". When NOT to use: do not omit it for production dialogs; APG\nmodal dialogs require an accessible name.",
              "attribute": "heading",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "open",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Reflected live modal state. Add it or call `show()` to open; remove it or\ncall `close()` to close. When open, the native dialog enters the top layer\nand the page behind is inert.\nWhen to use: bind application state to the dialog's modal lifecycle.\nWhen NOT to use: do not set the internal native `<dialog open>` attribute;\nthe host attribute is the only public source of truth.",
              "attribute": "open",
              "reflects": true
            },
            {
              "kind": "method",
              "name": "close",
              "privacy": "public",
              "description": "Closes the dialog and reports `method`. No-op when already closed.\nEquivalent to removing the host `open` attribute. Footer actions never\nclose automatically; wire them to this method.\nWhen to use: resolve footer actions, programmatic dismissals, and\napplication-controlled cancellation. When NOT to use: do not use for\nEscape or backdrop bookkeeping; those paths set their own close reasons.",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [],
              "signature": "close() => Promise<void>"
            },
            {
              "kind": "method",
              "name": "show",
              "privacy": "public",
              "description": "Opens the dialog modally. No-op when already open. Equivalent to adding\nthe host `open` attribute.\nWhen to use: call from the invoker that should receive focus again after\nclose. When NOT to use: do not call repeatedly to refresh content; update\nslotted content directly while open.",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [],
              "signature": "show() => Promise<void>"
            }
          ],
          "events": [
            {
              "name": "ki-close",
              "type": {
                "text": "CustomEvent<KiDialogCloseDetail>"
              },
              "description": "Post-close notification for every close path. Footer actions report\n`method` when they call `close()`, Escape reports `escape`, and opt-in\nbackdrop dismissal reports `backdrop`.\nWhen to use: update application state after the dialog is already closed\nand focus has returned through the native mechanism.\nWhen NOT to use: do not expect this event to veto closing; it is not\ncancelable in v1."
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "Dialog body content."
            },
            {
              "name": "footer",
              "description": "Dialog actions; applications wire every action to `close()`."
            }
          ],
          "cssParts": [
            {
              "name": "body",
              "description": "Scrollable body region."
            },
            {
              "name": "dialog",
              "description": "Internal native dialog surface."
            },
            {
              "name": "footer",
              "description": "Action row, collapsed when empty."
            },
            {
              "name": "heading",
              "description": "Visible h2 title, rendered only when `heading` is non-empty."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-dialog-backdrop-bg",
              "description": "color used by the dialog component for backdrop background."
            },
            {
              "name": "--ki-dialog-backdrop-blur",
              "description": "backdrop blur used by the dialog component glass surface (MarsUI BACKGROUND_BLUR Blur/24 = CSS 12px; material3 resolves to blur none via the semantic override; perf-measure before enabling per DNA section 5)."
            },
            {
              "name": "--ki-dialog-bg",
              "description": "color used by the dialog component for background (flat fallback of the MarsUI glass gradient: Surface/Special/light-s0_dark-s2; components paint the gradient from ki.dialog.bg-start to ki.dialog.bg-end)."
            },
            {
              "name": "--ki-dialog-bg-end",
              "description": "color used by the dialog component for the glass gradient end (MarsUI Surface/Special/light-s0_dark-s2: white light / Dark/800 dark)."
            },
            {
              "name": "--ki-dialog-bg-start",
              "description": "color used by the dialog component for the glass gradient start (MarsUI Surface/Special/blur_base_light White/80; dark resolves rgba(36,36,36,0.8)). Paint background: linear-gradient(180deg, var(--ki-dialog-bg-start), var(--ki-dialog-bg-end))."
            },
            {
              "name": "--ki-dialog-border",
              "description": "border used by the dialog component for border (MarsUI 1px solid Outline/base_em Black/3 light / White/3 dark; retires the migrated Black/5 foundation reference)."
            },
            {
              "name": "--ki-dialog-fg",
              "description": "color used by the dialog component for foreground."
            },
            {
              "name": "--ki-dialog-focus-ring-color",
              "description": "color used by the dialog component for focus ring color."
            },
            {
              "name": "--ki-dialog-focus-ring-offset",
              "description": "dimension used by the dialog component for focus ring offset."
            },
            {
              "name": "--ki-dialog-focus-ring-width",
              "description": "dimension used by the dialog component for focus ring width."
            },
            {
              "name": "--ki-dialog-gap",
              "description": "dimension used by the dialog component for gap."
            },
            {
              "name": "--ki-dialog-heading-font-size",
              "description": "dimension used by the dialog component for heading font size."
            },
            {
              "name": "--ki-dialog-heading-font-weight",
              "description": "font weight used by the dialog component for heading font weight."
            },
            {
              "name": "--ki-dialog-heading-line-height",
              "description": "dimension used by the dialog component for heading line height."
            },
            {
              "name": "--ki-dialog-max-width",
              "description": "dimension used by the dialog component for max width (surface size scale; the former ki.space.26xl reference misused the spacing scale)."
            },
            {
              "name": "--ki-dialog-min-width",
              "description": "dimension used by the dialog component for min width (surface size scale; the former ki.space.25xl reference misused the spacing scale)."
            },
            {
              "name": "--ki-dialog-motion-duration",
              "description": "duration used by the dialog component for the enter transition (MarsUI moderate step 240ms; retires the migrated 0ms token that disabled the @starting-style fade)."
            },
            {
              "name": "--ki-dialog-motion-easing",
              "description": "easing used by the dialog component for the enter transition (MarsUI decelerate curve; retires the migrated linear pair)."
            },
            {
              "name": "--ki-dialog-padding",
              "description": "dimension used by the dialog component for padding."
            },
            {
              "name": "--ki-dialog-radius",
              "description": "dimension used by the dialog component for radius (MarsUI compact Modal master 16414:19665: Radius/big_component/radius_sm 20px; the large variant anchors 24px big_component/radius_md)."
            },
            {
              "name": "--ki-dialog-shadow",
              "description": "Dialog elevation: MarsUI elevation ramp level e4 (brief §5, high modal surface; replaces the migrated approximation). material3 keeps its own e3 override (M3 dialog = level3)."
            },
            {
              "name": "--ki-focus-primary",
              "description": "MarsUI Focus/primary: 3px spread focus ring of Outline/primary_base_em_alpha, read from the Figma master as #845abe33 = brand 500 at 20% (Kimen name: outline.primary-base-em-alpha / brand.500-alpha-2). The previous 40% (outline.primary-low-em-alpha / brand.500-alpha-4) came from specs/002-ki-button/design-extraction.md §2.5, which read the alpha off the Dark canvas mode and recorded it as the Light value; the ring shipped 2x too strong in light and 2.8x in dark across twelve components."
            },
            {
              "name": "--ki-motion-distance-md",
              "description": "Motion travel distance md (8px): entrance slide offsets (e.g. dialog rise)."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard-accelerate",
              "description": "Utility exit curve. M3 md.sys.motion.easing.standard-accelerate. onmars: the MarsUI accelerate curve (ki.easing.in)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            },
            {
              "name": "--ki-typography-line-height-para",
              "description": "semantic dimension for typography line height para."
            },
            {
              "name": "--ki-typography-size-body-1",
              "description": "semantic dimension for typography size body 1."
            },
            {
              "name": "--ki-typography-weight-body-normal",
              "description": "semantic font weight for typography weight body normal."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiDialog",
          "declaration": {
            "name": "KiDialog",
            "module": "dist/components/ki-dialog.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-dialog",
          "declaration": {
            "name": "KiDialog",
            "module": "dist/components/ki-dialog.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-divider.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiDivider",
          "customElement": true,
          "tagName": "ki-divider",
          "description": "A static, decorative rule that visually separates adjacent content.",
          "whenToUse": "visually separate adjacent content when spacing alone is not\nenough: grouped settings sections, toolbar action groups, distinct\nregions inside a card — horizontal between stacked content, vertical\nbetween side-by-side content.",
          "whenNotToUse": "between list items (separation is a ki-list theme-token\ndecision), semantic thematic breaks in running prose (native `<hr>`\ncarries those semantics — the divider is deliberately decorative and\ncontributes no role, name or announcement), as a border or outline\nsubstitute (surface/border tokens), or purely decorative flourishes\n(prefer white space).",
          "attributes": [
            {
              "name": "orientation",
              "fieldName": "orientation",
              "type": {
                "text": "\"horizontal\" | \"vertical\""
              },
              "default": "'horizontal'",
              "description": "Layout axis of the rule: `horizontal` spans the available inline size\nbetween stacked content; `vertical` stretches to the cross size its\nlayout context provides, between side-by-side content. A structural\naxis, never appearance — thickness, color, end caps and gutter are\nper-theme `--ki-divider-*` tokens. An unrecognized value matches no\nstyle selector, so the divider keeps the default horizontal rendering\n(fallback by CSS construction — no validation code)."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "orientation",
              "privacy": "public",
              "type": {
                "text": "\"horizontal\" | \"vertical\""
              },
              "default": "'horizontal'",
              "description": "Layout axis of the rule: `horizontal` spans the available inline size\nbetween stacked content; `vertical` stretches to the cross size its\nlayout context provides, between side-by-side content. A structural\naxis, never appearance — thickness, color, end caps and gutter are\nper-theme `--ki-divider-*` tokens. An unrecognized value matches no\nstyle selector, so the divider keeps the default horizontal rendering\n(fallback by CSS construction — no validation code).",
              "attribute": "orientation",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [],
          "cssParts": [
            {
              "name": "divider",
              "description": "The rule itself: thickness, color and end-cap radius."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-divider-color",
              "description": "color used by the divider component for the rule: Outline/base_em (Black/3 light, White/3 dark), the exact variable bound to every Figma divider variant and the same semantic role ki-list uses for item dividers."
            },
            {
              "name": "--ki-divider-radius",
              "description": "dimension used by the divider component for the end caps: the MarsUI ends axis is a pure-appearance, per-theme choice (FR-006); onmars keeps the rounded hairline (ends=rounded, pill caps)."
            },
            {
              "name": "--ki-divider-spacing",
              "description": "dimension used by the divider component for the reserved gutter: the 8px MarsUI variant frame with the rule centered inside it (FR-007)."
            },
            {
              "name": "--ki-divider-thickness",
              "description": "dimension used by the divider component for the rule thickness: the MarsUI 1px hairline verified on the Divider_horizontal/Divider_vertical sets (specs/020-ki-divider/design-extraction.md)."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-standard-decelerate",
              "description": "Utility entrance curve. M3 md.sys.motion.easing.standard-decelerate. onmars: the MarsUI decelerate curve (ki.easing.out)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiDivider",
          "declaration": {
            "name": "KiDivider",
            "module": "dist/components/ki-divider.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-divider",
          "declaration": {
            "name": "KiDivider",
            "module": "dist/components/ki-divider.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-icon-button.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiIconButton",
          "customElement": true,
          "tagName": "ki-icon-button",
          "description": "A token-styled, icon-only action button with native button semantics and a\nmandatory accessible name.",
          "whenToUse": "a compact, widely understood action where space precludes a\nvisible label: toolbars, card and dialog corners (close), media transport,\ndata-row actions. Always supply `label`; usually pair with ki-tooltip for\nsighted discoverability.",
          "whenNotToUse": "whenever a visible label fits (use ki-button), toggling\nstate (a future toggle icon button), navigation (use a link), or form\nsubmit/reset (ki-icon-button is not form-associated; use ki-button, whose\nvisible label communicates the consequence).",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents activation, removes the icon button from keyboard reach, and\nexposes the unavailable state through the internal native button.\nWhen NOT to use: do not use disabled for pending/loading semantics."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name of the internal focusable button (\"Close\", \"Play\").\nRequired in the catalog contract: the icon is presentational, so without\na label the control exposes no name and fails the accessibility audit.\nThe component never invents a fallback name.\nWhen NOT to use: never omit it; never duplicate it as visible text (a\nvisible label means ki-button)."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\""
              },
              "default": "'md'",
              "description": "Token-backed square size. Every size keeps at least the 24×24 minimum\npointer target (`xs` sits exactly on it); choose the size that matches\nthe density of the surrounding UI.\nWhen NOT to use: do not shrink below `xs` through tokens; no theme may\ngo under the WCAG 2.2 pointer-target floor."
            },
            {
              "name": "tone",
              "fieldName": "tone",
              "type": {
                "text": "\"danger\" | \"neutral\" | \"success\""
              },
              "default": "'neutral'",
              "description": "Semantic intent for the action, independent of hierarchy. Use `success`\nfor confirming actions and `danger` for destructive actions.\nWhen NOT to use: do not use tone for visual hierarchy; use `variant`."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "type": {
                "text": "\"ghost\" | \"primary\" | \"quaternary\" | \"secondary\" | \"tertiary\""
              },
              "default": "'secondary'",
              "description": "Visual hierarchy for the action. Use `primary` for the single main action\nin a view and lower-emphasis variants for supporting actions.\nWhen NOT to use: do not use variant to signal success or danger; use\n`tone` for intent."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents activation, removes the icon button from keyboard reach, and\nexposes the unavailable state through the internal native button.\nWhen NOT to use: do not use disabled for pending/loading semantics.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name of the internal focusable button (\"Close\", \"Play\").\nRequired in the catalog contract: the icon is presentational, so without\na label the control exposes no name and fails the accessibility audit.\nThe component never invents a fallback name.\nWhen NOT to use: never omit it; never duplicate it as visible text (a\nvisible label means ki-button).",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "size",
              "privacy": "public",
              "type": {
                "text": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\""
              },
              "default": "'md'",
              "description": "Token-backed square size. Every size keeps at least the 24×24 minimum\npointer target (`xs` sits exactly on it); choose the size that matches\nthe density of the surrounding UI.\nWhen NOT to use: do not shrink below `xs` through tokens; no theme may\ngo under the WCAG 2.2 pointer-target floor.",
              "attribute": "size",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "tone",
              "privacy": "public",
              "type": {
                "text": "\"danger\" | \"neutral\" | \"success\""
              },
              "default": "'neutral'",
              "description": "Semantic intent for the action, independent of hierarchy. Use `success`\nfor confirming actions and `danger` for destructive actions.\nWhen NOT to use: do not use tone for visual hierarchy; use `variant`.",
              "attribute": "tone",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "variant",
              "privacy": "public",
              "type": {
                "text": "\"ghost\" | \"primary\" | \"quaternary\" | \"secondary\" | \"tertiary\""
              },
              "default": "'secondary'",
              "description": "Visual hierarchy for the action. Use `primary` for the single main action\nin a view and lower-emphasis variants for supporting actions.\nWhen NOT to use: do not use variant to signal success or danger; use\n`tone` for intent.",
              "attribute": "variant",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Exactly one decorative icon. The slot is presentational: its\ncontent is hidden from assistive technology and never contributes to the\naccessible name — that comes from `label` alone."
            }
          ],
          "cssParts": [
            {
              "name": "button",
              "description": "Internal native button."
            },
            {
              "name": "icon",
              "description": "Icon wrapper around the default slot."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-icon-button-backdrop-blur",
              "description": "dimension used by the icon button component for the glass variants (primary/secondary) backdrop blur, identical to the button glass. material3 resolves to blur none via the semantic override."
            },
            {
              "name": "--ki-icon-button-border-width",
              "description": "dimension used by the icon button component for border width (MarsUI bevel/outline stroke: 1px, INNER — the square box already contains it)."
            },
            {
              "name": "--ki-icon-button-focus-ring-color",
              "description": "color used by the icon button component for focus ring color (the opaque WCAG 1.4.11 indicator)."
            },
            {
              "name": "--ki-icon-button-focus-ring-offset",
              "description": "dimension used by the icon button component for focus ring offset."
            },
            {
              "name": "--ki-icon-button-focus-ring-shadow",
              "description": "shadow used by the icon button component for the focus ring glow (MarsUI Focus/primary: 3px spread ring, V.1 double mechanism)."
            },
            {
              "name": "--ki-icon-button-focus-ring-width",
              "description": "dimension used by the icon button component for focus ring width."
            },
            {
              "name": "--ki-icon-button-ghost-danger-hover-bg",
              "description": "color used by the icon button component for ghost danger hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-ghost-danger-hover-border",
              "description": "color used by the icon button component for ghost danger hover border."
            },
            {
              "name": "--ki-icon-button-ghost-danger-hover-fg",
              "description": "color used by the icon button component for ghost danger hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-ghost-danger-rest-bg",
              "description": "color used by the icon button component for ghost danger rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-ghost-danger-rest-border",
              "description": "color used by the icon button component for ghost danger rest border."
            },
            {
              "name": "--ki-icon-button-ghost-danger-rest-fg",
              "description": "color used by the icon button component for ghost danger rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-ghost-disabled-shadow",
              "description": "value used by the icon button component for ghost disabled shadow (Figma disabled drops every shadow)."
            },
            {
              "name": "--ki-icon-button-ghost-hover-shadow",
              "description": "value used by the icon button component for ghost hover shadow."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-disabled-bg",
              "description": "color used by the icon button component for ghost disabled background (tone-independent, like the button disabled cells; deliberate 010 D2 deviation from Figma gray.100 for contrast, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-disabled-border",
              "description": "color used by the icon button component for ghost disabled border (Figma disabled drops the bevel)."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-disabled-fg",
              "description": "color used by the icon button component for ghost disabled foreground (tone-independent; 010 D2 deviation from Figma text/base_em, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-hover-bg",
              "description": "color used by the icon button component for ghost neutral hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-hover-border",
              "description": "color used by the icon button component for ghost neutral hover border."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-hover-fg",
              "description": "color used by the icon button component for ghost neutral hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-rest-bg",
              "description": "color used by the icon button component for ghost neutral rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-rest-border",
              "description": "color used by the icon button component for ghost neutral rest border."
            },
            {
              "name": "--ki-icon-button-ghost-neutral-rest-fg",
              "description": "color used by the icon button component for ghost neutral rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-ghost-rest-shadow",
              "description": "value used by the icon button component for ghost rest shadow."
            },
            {
              "name": "--ki-icon-button-ghost-success-hover-bg",
              "description": "color used by the icon button component for ghost success hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-ghost-success-hover-border",
              "description": "color used by the icon button component for ghost success hover border."
            },
            {
              "name": "--ki-icon-button-ghost-success-hover-fg",
              "description": "color used by the icon button component for ghost success hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-ghost-success-rest-bg",
              "description": "color used by the icon button component for ghost success rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-ghost-success-rest-border",
              "description": "color used by the icon button component for ghost success rest border."
            },
            {
              "name": "--ki-icon-button-ghost-success-rest-fg",
              "description": "color used by the icon button component for ghost success rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-lg-icon-size",
              "description": "dimension used by the icon button component for lg icon size (MarsUI Placeholder_lg 24px)."
            },
            {
              "name": "--ki-icon-button-lg-radius",
              "description": "dimension used by the icon button component for lg radius (12, same ramp as button)."
            },
            {
              "name": "--ki-icon-button-lg-size",
              "description": "dimension used by the icon button component for lg box (48px square)."
            },
            {
              "name": "--ki-icon-button-md-icon-size",
              "description": "dimension used by the icon button component for md icon size (MarsUI Placeholder_md 20px — the button md icon is 18px, 002 §3)."
            },
            {
              "name": "--ki-icon-button-md-radius",
              "description": "dimension used by the icon button component for md radius (10, same ramp as button)."
            },
            {
              "name": "--ki-icon-button-md-size",
              "description": "dimension used by the icon button component for md box (40px square, Figma node 10078:3129)."
            },
            {
              "name": "--ki-icon-button-primary-active-overlay",
              "description": "Pressed state layer for the primary icon button: primary paints on a dark brand fill, so its wash lightens: the next rung above ki.surface.hover-overlay (White/5 -> White/8 light). Replaces this variant's share of a 45-cell active bg/fg/border matrix whose values were documented mirrors of rest and which WITHDREW the hover overlay rather than deepening it, an appearance legible only to a pointer user who had hovered first."
            },
            {
              "name": "--ki-icon-button-primary-danger-hover-bg",
              "description": "color used by the icon button component for primary danger hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-primary-danger-hover-border",
              "description": "color used by the icon button component for primary danger hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-primary-danger-hover-fg",
              "description": "color used by the icon button component for primary danger hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-primary-danger-rest-bg",
              "description": "color used by the icon button component for primary danger rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-primary-danger-rest-border",
              "description": "color used by the icon button component for primary danger rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-primary-danger-rest-fg",
              "description": "color used by the icon button component for primary danger rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-primary-disabled-shadow",
              "description": "value used by the icon button component for primary disabled shadow (Figma disabled drops every shadow)."
            },
            {
              "name": "--ki-icon-button-primary-hover-overlay",
              "description": "color used by the icon button component for the primary hover overlay layer (MarsUI hover_overlay, identical to the button overlay)."
            },
            {
              "name": "--ki-icon-button-primary-hover-shadow",
              "description": "shadow used by the icon button component for primary hover shadow (MarsUI Component_effect/primary_hover)."
            },
            {
              "name": "--ki-icon-button-primary-neutral-disabled-bg",
              "description": "color used by the icon button component for primary disabled background (tone-independent, like the button disabled cells; deliberate 010 D2 deviation from Figma gray.100 for contrast, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-primary-neutral-disabled-border",
              "description": "color used by the icon button component for primary disabled border (Figma disabled drops the bevel)."
            },
            {
              "name": "--ki-icon-button-primary-neutral-disabled-fg",
              "description": "color used by the icon button component for primary disabled foreground (tone-independent; 010 D2 deviation from Figma text/base_em, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-primary-neutral-hover-bg",
              "description": "color used by the icon button component for primary neutral hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-primary-neutral-hover-border",
              "description": "color used by the icon button component for primary neutral hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-primary-neutral-hover-fg",
              "description": "color used by the icon button component for primary neutral hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-primary-neutral-rest-bg",
              "description": "color used by the icon button component for primary neutral rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-primary-neutral-rest-border",
              "description": "color used by the icon button component for primary neutral rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-primary-neutral-rest-fg",
              "description": "color used by the icon button component for primary neutral rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-primary-rest-border-bottom",
              "description": "color used by the icon button component for the primary bevel bottom edge (MarsUI Outline/primary_button_bottom, identical to the button bevel)."
            },
            {
              "name": "--ki-icon-button-primary-rest-shadow",
              "description": "shadow used by the icon button component for primary rest shadow (MarsUI Component_effect/primary_default)."
            },
            {
              "name": "--ki-icon-button-primary-success-hover-bg",
              "description": "color used by the icon button component for primary success hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-primary-success-hover-border",
              "description": "color used by the icon button component for primary success hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-primary-success-hover-fg",
              "description": "color used by the icon button component for primary success hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-primary-success-rest-bg",
              "description": "color used by the icon button component for primary success rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-primary-success-rest-border",
              "description": "color used by the icon button component for primary success rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-primary-success-rest-fg",
              "description": "color used by the icon button component for primary success rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-quaternary-danger-hover-bg",
              "description": "color used by the icon button component for quaternary danger hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-quaternary-danger-hover-border",
              "description": "color used by the icon button component for quaternary danger hover border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-icon-button-quaternary-danger-hover-fg",
              "description": "color used by the icon button component for quaternary danger hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-quaternary-danger-rest-bg",
              "description": "color used by the icon button component for quaternary danger rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-quaternary-danger-rest-border",
              "description": "color used by the icon button component for quaternary danger rest border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-icon-button-quaternary-danger-rest-fg",
              "description": "color used by the icon button component for quaternary danger rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-quaternary-disabled-shadow",
              "description": "value used by the icon button component for quaternary disabled shadow (Figma disabled drops every shadow)."
            },
            {
              "name": "--ki-icon-button-quaternary-hover-shadow",
              "description": "value used by the icon button component for quaternary hover shadow."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-disabled-bg",
              "description": "color used by the icon button component for quaternary disabled background (tone-independent, like the button disabled cells; deliberate 010 D2 deviation from Figma gray.100 for contrast, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-disabled-border",
              "description": "color used by the icon button component for quaternary neutral disabled border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-disabled-fg",
              "description": "color used by the icon button component for quaternary disabled foreground (tone-independent; 010 D2 deviation from Figma text/base_em, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-hover-bg",
              "description": "color used by the icon button component for quaternary neutral hover background (MarsUI hover mechanism: hover_overlay_inverse Black/3 wash over the transparent rest fill)."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-hover-border",
              "description": "color used by the icon button component for quaternary neutral hover border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-hover-fg",
              "description": "color used by the icon button component for quaternary neutral hover icon color (MarsUI quaternary glyph text/med_em gray; the outlined-purple rest identity was a pre-master synthesis)."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-rest-bg",
              "description": "color used by the icon button component for quaternary neutral rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-rest-border",
              "description": "color used by the icon button component for quaternary neutral rest border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-icon-button-quaternary-neutral-rest-fg",
              "description": "color used by the icon button component for quaternary neutral rest icon color (MarsUI quaternary glyph text/med_em gray; the outlined-purple rest identity was a pre-master synthesis)."
            },
            {
              "name": "--ki-icon-button-quaternary-rest-shadow",
              "description": "value used by the icon button component for quaternary rest shadow."
            },
            {
              "name": "--ki-icon-button-quaternary-success-hover-bg",
              "description": "color used by the icon button component for quaternary success hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-quaternary-success-hover-border",
              "description": "color used by the icon button component for quaternary success hover border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-icon-button-quaternary-success-hover-fg",
              "description": "color used by the icon button component for quaternary success hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-quaternary-success-rest-bg",
              "description": "color used by the icon button component for quaternary success rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-quaternary-success-rest-border",
              "description": "color used by the icon button component for quaternary success rest border (MarsUI quaternary is borderless in every state)."
            },
            {
              "name": "--ki-icon-button-quaternary-success-rest-fg",
              "description": "color used by the icon button component for quaternary success rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-secondary-active-overlay",
              "description": "Pressed state layer for the secondary icon button: secondary paints on a light fill, so its wash darkens: the next rung above ki.surface.hover-overlay-inverse (Black/3 -> Black/5 light). Replaces this variant's share of a 45-cell active bg/fg/border matrix whose values were documented mirrors of rest and which WITHDREW the hover overlay rather than deepening it, an appearance legible only to a pointer user who had hovered first."
            },
            {
              "name": "--ki-icon-button-secondary-danger-hover-bg",
              "description": "color used by the icon button component for secondary danger hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-secondary-danger-hover-border",
              "description": "color used by the icon button component for secondary danger hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-secondary-danger-hover-fg",
              "description": "color used by the icon button component for secondary danger hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-secondary-danger-rest-bg",
              "description": "color used by the icon button component for secondary danger rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-secondary-danger-rest-border",
              "description": "color used by the icon button component for secondary danger rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-secondary-danger-rest-fg",
              "description": "color used by the icon button component for secondary danger rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-secondary-disabled-shadow",
              "description": "value used by the icon button component for secondary disabled shadow (Figma disabled drops every shadow)."
            },
            {
              "name": "--ki-icon-button-secondary-hover-overlay",
              "description": "color used by the icon button component for the secondary hover overlay layer (MarsUI hover_overlay_inverse, identical to the button overlay)."
            },
            {
              "name": "--ki-icon-button-secondary-hover-shadow",
              "description": "shadow used by the icon button component for secondary hover shadow (MarsUI Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-disabled-bg",
              "description": "color used by the icon button component for secondary disabled background (tone-independent, like the button disabled cells; deliberate 010 D2 deviation from Figma gray.100 for contrast, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-disabled-border",
              "description": "color used by the icon button component for secondary disabled border (Figma disabled drops the bevel)."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-disabled-fg",
              "description": "color used by the icon button component for secondary disabled foreground (tone-independent; 010 D2 deviation from Figma text/base_em, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-hover-bg",
              "description": "color used by the icon button component for secondary neutral hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-hover-border",
              "description": "color used by the icon button component for secondary neutral hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-hover-fg",
              "description": "color used by the icon button component for secondary neutral hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-rest-bg",
              "description": "color used by the icon button component for secondary neutral rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-rest-border",
              "description": "color used by the icon button component for secondary neutral rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-secondary-neutral-rest-fg",
              "description": "color used by the icon button component for secondary neutral rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-secondary-rest-border-bottom",
              "description": "color used by the icon button component for the secondary bevel bottom edge (MarsUI Outline/secondary_button_bottom, identical to the button bevel)."
            },
            {
              "name": "--ki-icon-button-secondary-rest-shadow",
              "description": "shadow used by the icon button component for secondary rest shadow (MarsUI Component_effect/secondary_default)."
            },
            {
              "name": "--ki-icon-button-secondary-success-hover-bg",
              "description": "color used by the icon button component for secondary success hover background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-secondary-success-hover-border",
              "description": "color used by the icon button component for secondary success hover border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-secondary-success-hover-fg",
              "description": "color used by the icon button component for secondary success hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-secondary-success-rest-bg",
              "description": "color used by the icon button component for secondary success rest background (same semantic reference as the button matrix, 002)."
            },
            {
              "name": "--ki-icon-button-secondary-success-rest-border",
              "description": "color used by the icon button component for secondary success rest border (MarsUI bevel top/inline edge)."
            },
            {
              "name": "--ki-icon-button-secondary-success-rest-fg",
              "description": "color used by the icon button component for secondary success rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-sm-icon-size",
              "description": "dimension used by the icon button component for sm icon size (MarsUI Placeholder_sm 18px)."
            },
            {
              "name": "--ki-icon-button-sm-radius",
              "description": "dimension used by the icon button component for sm radius (8, same ramp as button)."
            },
            {
              "name": "--ki-icon-button-sm-size",
              "description": "dimension used by the icon button component for sm box (32px square)."
            },
            {
              "name": "--ki-icon-button-tertiary-danger-hover-bg",
              "description": "color used by the icon button component for tertiary danger hover background (one light step over the rest fill; dark keeps the rest fill — the hover signal is Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-icon-button-tertiary-danger-hover-border",
              "description": "color used by the icon button component for tertiary danger hover border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-icon-button-tertiary-danger-hover-fg",
              "description": "color used by the icon button component for tertiary danger hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-tertiary-danger-rest-bg",
              "description": "color used by the icon button component for tertiary danger rest background (MarsUI tertiary fill Surface/special/light-s0_dark-s2: White light, Dark/800 dark)."
            },
            {
              "name": "--ki-icon-button-tertiary-danger-rest-border",
              "description": "color used by the icon button component for tertiary danger rest border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-icon-button-tertiary-danger-rest-fg",
              "description": "color used by the icon button component for tertiary danger rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-tertiary-disabled-shadow",
              "description": "value used by the icon button component for tertiary disabled shadow (Figma disabled drops every shadow)."
            },
            {
              "name": "--ki-icon-button-tertiary-hover-shadow",
              "description": "shadow used by the icon button component for tertiary hover shadow (MarsUI Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-disabled-bg",
              "description": "color used by the icon button component for tertiary disabled background (tone-independent, like the button disabled cells; deliberate 010 D2 deviation from Figma gray.100 for contrast, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-disabled-border",
              "description": "color used by the icon button component for tertiary disabled border (Figma disabled drops the bevel)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-disabled-fg",
              "description": "color used by the icon button component for tertiary disabled foreground (tone-independent; 010 D2 deviation from Figma text/base_em, pending founder ratification)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-hover-bg",
              "description": "color used by the icon button component for tertiary neutral hover background (one light step over the rest fill; dark keeps the rest fill — the hover signal is Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-hover-border",
              "description": "color used by the icon button component for tertiary neutral hover border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-hover-fg",
              "description": "color used by the icon button component for tertiary neutral hover icon color (MarsUI tertiary glyph text/med_em gray — Kimen tertiary maps to Figma tertiary; the purple-glyph row is primary_flat, documented alternative)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-rest-bg",
              "description": "color used by the icon button component for tertiary neutral rest background (MarsUI tertiary fill Surface/special/light-s0_dark-s2: White light, Dark/800 dark)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-rest-border",
              "description": "color used by the icon button component for tertiary neutral rest border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-icon-button-tertiary-neutral-rest-fg",
              "description": "color used by the icon button component for tertiary neutral rest icon color (MarsUI tertiary glyph text/med_em gray — Kimen tertiary maps to Figma tertiary; the purple-glyph row is primary_flat, documented alternative)."
            },
            {
              "name": "--ki-icon-button-tertiary-rest-border-bottom",
              "description": "color used by the icon button component for the tertiary bevel bottom edge (MarsUI Outline/secondary_button_bottom — same bevel pair as secondary)."
            },
            {
              "name": "--ki-icon-button-tertiary-rest-shadow",
              "description": "shadow used by the icon button component for tertiary rest shadow (MarsUI Component_effect/secondary_default — replaces the migrated M2-era stack, which the material3 theme keeps via its own override)."
            },
            {
              "name": "--ki-icon-button-tertiary-success-hover-bg",
              "description": "color used by the icon button component for tertiary success hover background (one light step over the rest fill; dark keeps the rest fill — the hover signal is Component_effect/secondary_hover)."
            },
            {
              "name": "--ki-icon-button-tertiary-success-hover-border",
              "description": "color used by the icon button component for tertiary success hover border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-icon-button-tertiary-success-hover-fg",
              "description": "color used by the icon button component for tertiary success hover foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-tertiary-success-rest-bg",
              "description": "color used by the icon button component for tertiary success rest background (MarsUI tertiary fill Surface/special/light-s0_dark-s2: White light, Dark/800 dark)."
            },
            {
              "name": "--ki-icon-button-tertiary-success-rest-border",
              "description": "color used by the icon button component for tertiary success rest border (MarsUI secondary bevel top/inline edge — tertiary carries the secondary_button outline pair)."
            },
            {
              "name": "--ki-icon-button-tertiary-success-rest-fg",
              "description": "color used by the icon button component for tertiary success rest foreground — the icon inherits it via currentColor."
            },
            {
              "name": "--ki-icon-button-xl-icon-size",
              "description": "dimension used by the icon button component for xl icon size (MarsUI Placeholder_xl 28px)."
            },
            {
              "name": "--ki-icon-button-xl-radius",
              "description": "dimension used by the icon button component for xl radius (14, same ramp as button)."
            },
            {
              "name": "--ki-icon-button-xl-size",
              "description": "dimension used by the icon button component for xl box (56px square)."
            },
            {
              "name": "--ki-icon-button-xs-icon-size",
              "description": "dimension used by the icon button component for xs icon size (MarsUI Icon/Placeholder_xs 16px — one step above the button xs icon)."
            },
            {
              "name": "--ki-icon-button-xs-radius",
              "description": "dimension used by the icon button component for xs radius (Figma Radius/component/radius_xs 6, same ramp as button)."
            },
            {
              "name": "--ki-icon-button-xs-size",
              "description": "dimension used by the icon button component for xs box (24px square, Figma Space/7xl)."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-transparent-inverse",
              "description": "semantic color for transparent inverse."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiIconButton",
          "declaration": {
            "name": "KiIconButton",
            "module": "dist/components/ki-icon-button.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-icon-button",
          "declaration": {
            "name": "KiIconButton",
            "module": "dist/components/ki-icon-button.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-indicator.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiIndicator",
          "customElement": true,
          "tagName": "ki-indicator",
          "description": "A non-interactive page-position indicator: one dot per position of a\nbounded sequence, exactly one highlighted as current.",
          "whenToUse": "show the current position within a bounded, sequential set of\npeer views whose navigation lives elsewhere: carousel slides, unlabeled\nonboarding steps, gallery pages. Wire `count` and `current` (1-based) to\nthe sequence the consumer renders and give it a `label` (required\nauthoring: assistive technology reads one graphic named\n\"<label>, <current> / <count>\"). Below two positions an indicator carries\nno information.",
          "whenNotToUse": "section navigation (ki-tabs), task completion or loading\n(ki-progress), labeled step flows (a stepper is a separate roadmap item),\ninteractive pagination (a future feature — the indicator takes no focus\nand no input; navigation belongs to the composing carousel's own\ncontrols), or conveying quantity without a current position. Position\nchanges are never announced by the indicator itself (no live region): the\ncomposing carousel owns announcements.",
          "attributes": [
            {
              "name": "count",
              "fieldName": "count",
              "type": {
                "text": "number | undefined"
              },
              "description": "Number of positions (non-negative integer): one dot renders per\nposition, in position order. A missing, non-numeric or negative value\nrenders zero dots — an authoring mistake by catalog guidance, never an\nerror state or a rendering failure (FR-002; empty ki-list precedent)."
            },
            {
              "name": "current",
              "fieldName": "current",
              "type": {
                "text": "number | undefined"
              },
              "description": "The current position, 1-based to match the exposed position text\n(\"2 / 5\"). Exactly one dot presents the current appearance whenever\n`count` >= 1: values above `count` clamp to the last position, values\nbelow 1 and non-numeric values fall back to the first (FR-003). Updates\nre-render in place — the highlight and the exposed text follow\nimmediately, re-applying the normalization (FR-004)."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name of the sequence (\"Slide position\"). The exposed name\ncombines it with the wordless numeric position —\n\"<label>, <current> / <count>\" — on a single non-interactive graphic;\nwithout a label the name degrades to the bare position text (documented\nas required authoring, FR-005). The label is never rendered visually\nand position changes are never announced (no live region, FR-006)."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "count",
              "privacy": "public",
              "type": {
                "text": "number | undefined"
              },
              "description": "Number of positions (non-negative integer): one dot renders per\nposition, in position order. A missing, non-numeric or negative value\nrenders zero dots — an authoring mistake by catalog guidance, never an\nerror state or a rendering failure (FR-002; empty ki-list precedent).",
              "attribute": "count",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "current",
              "privacy": "public",
              "type": {
                "text": "number | undefined"
              },
              "description": "The current position, 1-based to match the exposed position text\n(\"2 / 5\"). Exactly one dot presents the current appearance whenever\n`count` >= 1: values above `count` clamp to the last position, values\nbelow 1 and non-numeric values fall back to the first (FR-003). Updates\nre-render in place — the highlight and the exposed text follow\nimmediately, re-applying the normalization (FR-004).",
              "attribute": "current",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name of the sequence (\"Slide position\"). The exposed name\ncombines it with the wordless numeric position —\n\"<label>, <current> / <count>\" — on a single non-interactive graphic;\nwithout a label the name degrades to the bare position text (documented\nas required authoring, FR-005). The label is never rendered visually\nand position changes are never announced (no live region, FR-006).",
              "attribute": "label",
              "reflects": false
            }
          ],
          "events": [],
          "slots": [],
          "cssParts": [
            {
              "name": "dot",
              "description": "Every dot: size, shape and color."
            },
            {
              "name": "dot-current",
              "description": "Additionally on the current dot: the highlight treatment."
            },
            {
              "name": "indicator",
              "description": "The row container: layout and the token-driven gap."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-indicator-dot-block-size",
              "description": "dimension used by the indicator component for the resting dot block size: the 8px circle diameter measured in the State=inactive vector (the 16px frame height is row alignment, carried by the current dot)."
            },
            {
              "name": "--ki-indicator-dot-color",
              "description": "color used by the indicator component for the resting dot fill: Inverse_white/alpha_18, the exact variable bound to every Indicator variant fill (Black/18 light, White/18 dark) — the scheme flip rides the semantic layer."
            },
            {
              "name": "--ki-indicator-dot-current-block-size",
              "description": "dimension used by the indicator component for the current dot block size: Space/3xl, the exact variable bound as the 16px height of the State=active pill (the full row line; declared family extension, design-extraction §Decisiones)."
            },
            {
              "name": "--ki-indicator-dot-current-color",
              "description": "color used by the indicator component for the current dot treatment: Inverse_white/alpha_18, the exact fill of the State=active ring vector (Black/18 light, White/18 dark) — painted as the pill ring in onmars, as the solid dot in themes that zero the hole."
            },
            {
              "name": "--ki-indicator-dot-current-hole-block-size",
              "description": "dimension used by the indicator component for the block size of the transparent hole cut from the current pill: the 6px cutout height measured in the State=active vector; the ring width derives by construction as (current block size − hole block size) / 2 and a theme resolves it to zero for a solid dot (declared family extension, design-extraction §Decisiones)."
            },
            {
              "name": "--ki-indicator-dot-current-inline-size",
              "description": "dimension used by the indicator component for the current dot inline size: Space/10xl, the exact variable bound as the 32px width of the State=active pill — the MarsUI elongation lives here, never in an attribute (FR-007)."
            },
            {
              "name": "--ki-indicator-dot-current-radius",
              "description": "dimension used by the indicator component for the current dot shape: Radius/radius_round bound in Figma — the pill is a radius token, never an attribute (002 shape precedent)."
            },
            {
              "name": "--ki-indicator-dot-inline-size",
              "description": "dimension used by the indicator component for the resting dot inline size: Space/md, the exact variable bound as the 8px width of the State=inactive symbol; the painted circle is 8x8 centered in the 16px row line."
            },
            {
              "name": "--ki-indicator-dot-radius",
              "description": "dimension used by the indicator component for the resting dot shape: Radius/radius_round bound in Figma — the round dot is a radius token, never an attribute (002 shape precedent)."
            },
            {
              "name": "--ki-indicator-gap",
              "description": "dimension used by the indicator component for the space between dots: Space/sm, the exact variable bound as the 6px gap of the composed Nav_indicator row (node 14195:5866, specs/024-ki-indicator/design-extraction.md)."
            },
            {
              "name": "--ki-indicator-motion-duration",
              "description": "duration used by the indicator component for the highlight transfer between dots: the Figma set documents no motion, so onmars resolves the single transition to the fast semantic duration (FR-008; disabled under reduced motion by construction)."
            },
            {
              "name": "--ki-indicator-motion-easing",
              "description": "easing used by the indicator component for the highlight-transfer transition (MarsUI standard curve; previously the UA default ease applied)."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-standard-decelerate",
              "description": "Utility entrance curve. M3 md.sys.motion.easing.standard-decelerate. onmars: the MarsUI decelerate curve (ki.easing.out)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiIndicator",
          "declaration": {
            "name": "KiIndicator",
            "module": "dist/components/ki-indicator.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-indicator",
          "declaration": {
            "name": "KiIndicator",
            "module": "dist/components/ki-indicator.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-input.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiInput",
          "customElement": true,
          "tagName": "ki-input",
          "description": "A token-styled single-line text field with native input semantics.",
          "whenToUse": "collect one line of free text from a person, always with a\nvisible `label`; choose the `type` and `autocomplete` that match the entry\npurpose.",
          "whenNotToUse": "multiline text, predefined choices, boolean state, numeric\nstepper entry, or placeholder-only labeling.",
          "attributes": [
            {
              "name": "autocomplete",
              "fieldName": "autocomplete",
              "type": {
                "text": "string | undefined"
              },
              "description": "Native autocomplete detail token forwarded to the internal input.\nWhen NOT to use: omit when no autofill entry purpose is known."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents editing, removes the field from keyboard reach and exposes the\nunavailable state through the internal native input.\nWhen NOT to use: do not use disabled for readonly reference values."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Visible label rendered next to the entry area and used as the accessible\nname. This is mandatory for valid usage.\nWhen NOT to use: never use `placeholder` as a label substitute."
            },
            {
              "name": "name",
              "fieldName": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key for the submitted value.\nWhen NOT to use: omit when the field must not contribute named form data."
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Hint shown when the field is empty.\nWhen NOT to use: do not use placeholder as the accessible name."
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the value focusable and selectable while rejecting edits.\nWhen NOT to use: use `disabled` when the value must be unavailable and\nexcluded from forms."
            },
            {
              "name": "required",
              "fieldName": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marks the field as required for native constraint validation.\nWhen NOT to use: do not use required on optional fields."
            },
            {
              "name": "type",
              "fieldName": "type",
              "type": {
                "text": "\"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\""
              },
              "default": "'text'",
              "description": "Entry kind with native single-line input semantics. Unknown runtime\nvalues fall back to `text`; `number` is not a v1 input kind.\nWhen NOT to use: use future numeric controls for locale-aware number entry."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Live text value. The attribute declares the initial default; the property\nis the current value and programmatic assignments are silent.\nDeviation from native (deliberate, research D2): assigning the ATTRIBUTE\nprogrammatically also replaces the displayed value, silently — native\ninputs would keep the user's dirty value. Form reset restores the\nattribute's current value.\nWhen NOT to use: do not observe user edits by polling; listen for `input`\nand `change` (both re-dispatched composed across the shadow boundary)."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "autocomplete",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Native autocomplete detail token forwarded to the internal input.\nWhen NOT to use: omit when no autofill entry purpose is known.",
              "attribute": "autocomplete",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents editing, removes the field from keyboard reach and exposes the\nunavailable state through the internal native input.\nWhen NOT to use: do not use disabled for readonly reference values.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Visible label rendered next to the entry area and used as the accessible\nname. This is mandatory for valid usage.\nWhen NOT to use: never use `placeholder` as a label substitute.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key for the submitted value.\nWhen NOT to use: omit when the field must not contribute named form data.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "placeholder",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Hint shown when the field is empty.\nWhen NOT to use: do not use placeholder as the accessible name.",
              "attribute": "placeholder",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "readonly",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the value focusable and selectable while rejecting edits.\nWhen NOT to use: use `disabled` when the value must be unavailable and\nexcluded from forms.",
              "attribute": "readonly",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "required",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marks the field as required for native constraint validation.\nWhen NOT to use: do not use required on optional fields.",
              "attribute": "required",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "type",
              "privacy": "public",
              "type": {
                "text": "\"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\""
              },
              "default": "'text'",
              "description": "Entry kind with native single-line input semantics. Unknown runtime\nvalues fall back to `text`; `number` is not a v1 input kind.\nWhen NOT to use: use future numeric controls for locale-aware number entry.",
              "attribute": "type",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Live text value. The attribute declares the initial default; the property\nis the current value and programmatic assignments are silent.\nDeviation from native (deliberate, research D2): assigning the ATTRIBUTE\nprogrammatically also replaces the displayed value, silently — native\ninputs would keep the user's dirty value. Form reset restores the\nattribute's current value.\nWhen NOT to use: do not observe user edits by polling; listen for `input`\nand `change` (both re-dispatched composed across the shadow boundary).",
              "attribute": "value",
              "reflects": false
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "end",
              "description": "Trailing icon or text affix inside the field. Follows writing direction."
            },
            {
              "name": "start",
              "description": "Leading icon or text affix inside the field. Follows writing direction."
            }
          ],
          "cssParts": [
            {
              "name": "field",
              "description": "Enclosure wrapper for background, border, radius and focus ring."
            },
            {
              "name": "input",
              "description": "Internal native input that owns entry text, caret and selection."
            },
            {
              "name": "label",
              "description": "Visible label that provides the accessible name."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-input-border-block-end-width",
              "description": "dimension used by the input component for border block end width."
            },
            {
              "name": "--ki-input-border-block-start-width",
              "description": "dimension used by the input component for border block start width."
            },
            {
              "name": "--ki-input-border-inline-end-width",
              "description": "dimension used by the input component for border inline end width."
            },
            {
              "name": "--ki-input-border-inline-start-width",
              "description": "dimension used by the input component for border inline start width."
            },
            {
              "name": "--ki-input-disabled-bg",
              "description": "color used by the input component for disabled background."
            },
            {
              "name": "--ki-input-disabled-border",
              "description": "color used by the input component for disabled border."
            },
            {
              "name": "--ki-input-disabled-fg",
              "description": "color used by the input component for disabled foreground (MarsUI disabled text Text/base_em; disabled cells are exempt from the contrast sweep)."
            },
            {
              "name": "--ki-input-disabled-label-fg",
              "description": "color used by the input component for disabled label foreground."
            },
            {
              "name": "--ki-input-disabled-placeholder-fg",
              "description": "color used by the input component for disabled placeholder foreground."
            },
            {
              "name": "--ki-input-focus-bg",
              "description": "color used by the input component for focus background (MarsUI active state switches the fill to Surface/Special white / dark s2 — modeled with the scheme ladder s0)."
            },
            {
              "name": "--ki-input-focus-fg",
              "description": "color used by the input component for focus foreground."
            },
            {
              "name": "--ki-input-focus-label-fg",
              "description": "color used by the input component for focus label foreground (MarsUI label is Text/med_em in every non-disabled state — active and danger included; the danger signal lives in the hint)."
            },
            {
              "name": "--ki-input-focus-placeholder-fg",
              "description": "color used by the input component for focus placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-input-focus-ring-color",
              "description": "color used by the input component for focus ring color."
            },
            {
              "name": "--ki-input-focus-ring-offset",
              "description": "dimension used by the input component for focus ring offset."
            },
            {
              "name": "--ki-input-focus-ring-shadow",
              "description": "shadow used by the input component for the focus ring glow (MarsUI Focus/primary: 3px spread ring at 20% — see ki.focus.primary. specs/002-ki-button/design-extraction.md §2.5 recorded 40%, having read the alpha off the Dark canvas mode, same double mechanism as ki-button: glow plus the opaque indicator)."
            },
            {
              "name": "--ki-input-focus-ring-width",
              "description": "dimension used by the input component for focus ring width."
            },
            {
              "name": "--ki-input-font-size",
              "description": "dimension used by the input component for font size."
            },
            {
              "name": "--ki-input-font-weight",
              "description": "font weight used by the input component for font weight."
            },
            {
              "name": "--ki-input-gap",
              "description": "dimension used by the input component for gap."
            },
            {
              "name": "--ki-input-height",
              "description": "dimension used by the input component for height (MarsUI Input_field md cell: min-height 40px; consume as min-block-size so the field can grow)."
            },
            {
              "name": "--ki-input-hover-bg",
              "description": "color used by the input component for hover background (MarsUI hover = s2 + Black/3 overlay; s3 is the nearest token)."
            },
            {
              "name": "--ki-input-hover-border",
              "description": "color used by the input component for hover border."
            },
            {
              "name": "--ki-input-hover-fg",
              "description": "color used by the input component for hover foreground."
            },
            {
              "name": "--ki-input-hover-label-fg",
              "description": "color used by the input component for hover label foreground (MarsUI label is Text/med_em in every non-disabled state — active and danger included; the danger signal lives in the hint)."
            },
            {
              "name": "--ki-input-hover-placeholder-fg",
              "description": "color used by the input component for hover placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-input-icon-size",
              "description": "dimension used by the input component for icon size."
            },
            {
              "name": "--ki-input-invalid-bg",
              "description": "color used by the input component for invalid background (MarsUI danger state keeps the white active fill; the ring and hint carry the signal)."
            },
            {
              "name": "--ki-input-invalid-border",
              "description": "color used by the input component for invalid border."
            },
            {
              "name": "--ki-input-invalid-fg",
              "description": "color used by the input component for invalid foreground."
            },
            {
              "name": "--ki-input-invalid-label-fg",
              "description": "color used by the input component for invalid label foreground (MarsUI label is Text/med_em in every non-disabled state — active and danger included; the danger signal lives in the hint)."
            },
            {
              "name": "--ki-input-invalid-placeholder-fg",
              "description": "color used by the input component for invalid placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-input-invalid-ring",
              "description": "shadow used by the input component for the persistent invalid ring (MarsUI Focus/danger: 3px danger-500 alpha spread; applied as box-shadow while :state(user-invalid))."
            },
            {
              "name": "--ki-input-label-font-size",
              "description": "dimension used by the input component for label font size (MarsUI UI/Para/medium: body_1 13px)."
            },
            {
              "name": "--ki-input-label-font-weight",
              "description": "font weight used by the input component for label font weight."
            },
            {
              "name": "--ki-input-label-gap",
              "description": "dimension used by the input component for label gap."
            },
            {
              "name": "--ki-input-label-line-height",
              "description": "dimension used by the input component for label line height (MarsUI line_height/para 20px)."
            },
            {
              "name": "--ki-input-label-padding-inline",
              "description": "dimension used by the input component for label padding inline (MarsUI Input_label row 2px inset aligning the label ink with the cell radius)."
            },
            {
              "name": "--ki-input-line-height",
              "description": "dimension used by the input component for line height."
            },
            {
              "name": "--ki-input-padding-inline",
              "description": "dimension used by the input component for padding inline."
            },
            {
              "name": "--ki-input-radius",
              "description": "dimension used by the input component for radius (MarsUI Radius/component/radius_md 10px, the md Input_cell binding; component ramp so personality modes reach it)."
            },
            {
              "name": "--ki-input-readonly-bg",
              "description": "color used by the input component for readonly background (retires the deprecated ki.surface.raised alias; same resolved value)."
            },
            {
              "name": "--ki-input-readonly-border",
              "description": "color used by the input component for readonly border."
            },
            {
              "name": "--ki-input-readonly-fg",
              "description": "color used by the input component for readonly foreground."
            },
            {
              "name": "--ki-input-readonly-label-fg",
              "description": "color used by the input component for readonly label foreground (MarsUI label is Text/med_em in every non-disabled state — active and danger included; the danger signal lives in the hint)."
            },
            {
              "name": "--ki-input-readonly-placeholder-fg",
              "description": "color used by the input component for readonly placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-input-rest-bg",
              "description": "color used by the input component for rest background (MarsUI Input_field rest fill Surface/s2: the fill identifies the field, not the outline)."
            },
            {
              "name": "--ki-input-rest-border",
              "description": "color used by the input component for rest border."
            },
            {
              "name": "--ki-input-rest-fg",
              "description": "color used by the input component for rest foreground."
            },
            {
              "name": "--ki-input-rest-label-fg",
              "description": "color used by the input component for rest label foreground (MarsUI label is Text/med_em in every non-disabled state — active and danger included; the danger signal lives in the hint)."
            },
            {
              "name": "--ki-input-rest-placeholder-fg",
              "description": "color used by the input component for rest placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiInput",
          "declaration": {
            "name": "KiInput",
            "module": "dist/components/ki-input.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-input",
          "declaration": {
            "name": "KiInput",
            "module": "dist/components/ki-input.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-list.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiList",
          "customElement": true,
          "tagName": "ki-list",
          "description": "A non-interactive vertical list container for read-only collections of\nsimilar entries composed with `ki-list-item` children.",
          "whenToUse": "settings, contacts, results or activity feeds where each item\ncomposes leading media, primary text, optional secondary text and trailing\nmeta or a slotted control.",
          "whenNotToUse": "menus, selectable option lists, tabular data, navigation,\nwhole-item clickable rows or lone items outside a list.",
          "attributes": [],
          "members": [],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "`ki-list-item` children. Other children are unsupported."
            }
          ],
          "cssParts": [
            {
              "name": "list",
              "description": "List surface that owns background, padding, item gap and\nbetween-item divider styling."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-list-bg",
              "description": "color used by the list component for background."
            },
            {
              "name": "--ki-list-gap",
              "description": "dimension used by the list component for gap (MarsUI compositions stack rows contiguously; --ki-list-gap stays as the theme hook)."
            },
            {
              "name": "--ki-list-item-divider-color",
              "description": "color used by the list component for item divider color."
            },
            {
              "name": "--ki-list-item-divider-width",
              "description": "dimension used by the list component for item divider width (no divider renders in any master variant; the color hook ki.list.item.divider-color stays so consumers can opt hairlines back in)."
            },
            {
              "name": "--ki-list-padding",
              "description": "dimension used by the list component for padding."
            },
            {
              "name": "--ki-motion-distance-xs",
              "description": "Motion travel distance xs (2px): hover-lift offsets."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-duration-medium-1",
              "description": "M3 md.sys.motion.duration.medium1 (250ms). onmars: MarsUI moderate step (240ms, 2x the 120ms base)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiList",
          "declaration": {
            "name": "KiList",
            "module": "dist/components/ki-list.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-list",
          "declaration": {
            "name": "KiList",
            "module": "dist/components/ki-list.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-list-item.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiListItem",
          "customElement": true,
          "tagName": "ki-list-item",
          "description": "A non-interactive item inside `ki-list`, composed from leading media,\nprimary text, optional secondary text and trailing media or meta.",
          "whenToUse": "only as a child of `ki-list`, for one read-only entry in a\nsimilar vertical collection.",
          "whenNotToUse": "outside `ki-list`, as a menu item, selectable option,\ntabular row, navigation link or whole-item clickable control.",
          "attributes": [],
          "members": [],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Primary text line."
            },
            {
              "name": "end",
              "description": "Trailing media, meta text or a slotted control."
            },
            {
              "name": "secondary",
              "description": "Supporting text below the primary line. Its presence\nselects the multi-line min-height token."
            },
            {
              "name": "start",
              "description": "Leading media such as an icon, avatar or image."
            }
          ],
          "cssParts": [
            {
              "name": "content",
              "description": "Text column containing primary and secondary lines."
            },
            {
              "name": "end",
              "description": "Trailing region wrapper."
            },
            {
              "name": "item",
              "description": "Item row surface and layout container."
            },
            {
              "name": "start",
              "description": "Leading region wrapper."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-inverse-white-alpha-3",
              "description": "semantic color for inverse white alpha 3."
            },
            {
              "name": "--ki-inverse-white-alpha-6",
              "description": "semantic color for inverse white alpha 6."
            },
            {
              "name": "--ki-list-item-gap",
              "description": "dimension used by the list component for item gap (MarsUI md/lg rows: Space/xl 12px between start/content/end regions)."
            },
            {
              "name": "--ki-list-item-min-height",
              "description": "dimension used by the list component for item min height (MarsUI md text-only row is ~40px content-sized: 20px line + 2x10 padding)."
            },
            {
              "name": "--ki-list-item-min-height-multiline",
              "description": "dimension used by the list component for multiline item min height (MarsUI md two-line row measures 56px)."
            },
            {
              "name": "--ki-list-item-padding-block",
              "description": "dimension used by the list component for item padding block (MarsUI md rows: Space/lg 10px)."
            },
            {
              "name": "--ki-list-item-padding-inline",
              "description": "dimension used by the list component for item padding inline."
            },
            {
              "name": "--ki-list-item-primary-fg",
              "description": "color used by the list component for item primary foreground."
            },
            {
              "name": "--ki-list-item-primary-font-size",
              "description": "dimension used by the list component for item primary font size."
            },
            {
              "name": "--ki-list-item-primary-font-weight",
              "description": "font weight used by the list component for item primary font weight."
            },
            {
              "name": "--ki-list-item-primary-line-height",
              "description": "dimension used by the list component for primary line height (MarsUI primary is UI/Para/medium 13/20, not UI/Body 1 13/24)."
            },
            {
              "name": "--ki-list-item-radius",
              "description": "dimension used by the list component for item radius."
            },
            {
              "name": "--ki-list-item-secondary-fg",
              "description": "color used by the list component for item secondary foreground."
            },
            {
              "name": "--ki-list-item-secondary-font-size",
              "description": "dimension used by the list component for secondary font size (MarsUI description line is UI/Caption 2: 12px)."
            },
            {
              "name": "--ki-list-item-secondary-font-weight",
              "description": "font weight used by the list component for item secondary font weight."
            },
            {
              "name": "--ki-list-item-secondary-line-height",
              "description": "dimension used by the list component for secondary line height (MarsUI caption_2 16px; same value as before with the correct provenance)."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiListItem",
          "declaration": {
            "name": "KiListItem",
            "module": "dist/components/ki-list-item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-list-item",
          "declaration": {
            "name": "KiListItem",
            "module": "dist/components/ki-list-item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-option.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiOption",
          "customElement": true,
          "tagName": "ki-option",
          "description": "A declarative data option rendered by its owning `ki-select`.",
          "whenToUse": "declare one choice inside a `ki-select`; its text is the\nhuman-facing label and its `value` is the submitted value.",
          "whenNotToUse": "`ki-option` standalone, authoring selection\non an option, or expecting it to paint its own row.",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes this option unavailable. Disabled options cannot be selected, are\nskipped by keyboard highlight, and are exposed unavailable by the select."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string | undefined"
              },
              "description": "Submission and selection value for this option. When omitted, the value\nfalls back to the trimmed option text, matching native `<option>` parity.\nWhen NOT to use: do not use this as selection state; set `ki-select.value`."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes this option unavailable. Disabled options cannot be selected, are\nskipped by keyboard highlight, and are exposed unavailable by the select.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Submission and selection value for this option. When omitted, the value\nfalls back to the trimmed option text, matching native `<option>` parity.\nWhen NOT to use: do not use this as selection state; set `ki-select.value`.",
              "attribute": "value",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Text label mirrored by the owning select."
            }
          ],
          "cssParts": [],
          "cssProperties": []
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiOption",
          "declaration": {
            "name": "KiOption",
            "module": "dist/components/ki-option.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-option",
          "declaration": {
            "name": "KiOption",
            "module": "dist/components/ki-option.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-progress.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiProgress",
          "customElement": true,
          "tagName": "ki-progress",
          "description": "A token-styled, non-interactive progress indicator for known or unknown\nduration work.",
          "whenToUse": "communicate advancement of an ongoing task such as upload,\ndownload, installation or multi-step processing. Use `value`/`max` when\nthe completed fraction is known; use `indeterminate` when work is ongoing\nbut its duration cannot be measured, including loading-indicator use cases.\nChoose `linear` in page flows and lists, and `circular` in compact or\ncentered placements. Always set `label` to what is progressing.",
          "whenNotToUse": "static measurements within a known range such as disk\nusage or scores (gauge/meter), step-by-step wizard navigation (stepper),\nskeleton placeholders while content loads, or operations that finish in\nunder about one second.",
          "attributes": [
            {
              "name": "indeterminate",
              "fieldName": "indeterminate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Unknown-duration mode. When set, no completed fraction or current value is\nexposed. Its motion is declared only when reduced motion is not requested.\nWhen to use: show ongoing work whose duration or total cannot be measured.\nWhen NOT to use: do not use for known fractions; use `value` and `max`."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name applied to the internal progressbar. Always set this to\nwhat is progressing, such as \"Uploading report.pdf\". Without it the\nelement renders but exposes no accessible name.\nWhen NOT to use: do not use a generic label such as \"Loading\" when the\ntask can be named more specifically."
            },
            {
              "name": "max",
              "fieldName": "max",
              "type": {
                "text": "number"
              },
              "default": "100",
              "description": "Total amount. Non-finite, zero or negative values normalize to `100` for\npresentation and ARIA.\nWhen to use: set when a determinate task's total is not 100.\nWhen NOT to use: omit for conventional percentage-style progress."
            },
            {
              "name": "shape",
              "fieldName": "shape",
              "type": {
                "text": "\"circular\" | \"linear\""
              },
              "default": "'linear'",
              "description": "Structural presentation. Use `linear` in page flows and lists; use\n`circular` in compact or centered placements. Unknown values render linear.\nWhen NOT to use: do not use shape to encode semantic status or task intent."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Completed amount. Presentation and ARIA clamp this value to `0..max`;\nmalformed values fall back to `0`. Ignored while `indeterminate` is set.\nWhen to use: set with `max` for determinate task advancement.\nWhen NOT to use: do not set a fabricated value for unknown-duration work;\nset `indeterminate` instead."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "indeterminate",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Unknown-duration mode. When set, no completed fraction or current value is\nexposed. Its motion is declared only when reduced motion is not requested.\nWhen to use: show ongoing work whose duration or total cannot be measured.\nWhen NOT to use: do not use for known fractions; use `value` and `max`.",
              "attribute": "indeterminate",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name applied to the internal progressbar. Always set this to\nwhat is progressing, such as \"Uploading report.pdf\". Without it the\nelement renders but exposes no accessible name.\nWhen NOT to use: do not use a generic label such as \"Loading\" when the\ntask can be named more specifically.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "max",
              "privacy": "public",
              "type": {
                "text": "number"
              },
              "default": "100",
              "description": "Total amount. Non-finite, zero or negative values normalize to `100` for\npresentation and ARIA.\nWhen to use: set when a determinate task's total is not 100.\nWhen NOT to use: omit for conventional percentage-style progress.",
              "attribute": "max",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "shape",
              "privacy": "public",
              "type": {
                "text": "\"circular\" | \"linear\""
              },
              "default": "'linear'",
              "description": "Structural presentation. Use `linear` in page flows and lists; use\n`circular` in compact or centered placements. Unknown values render linear.\nWhen NOT to use: do not use shape to encode semantic status or task intent.",
              "attribute": "shape",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Completed amount. Presentation and ARIA clamp this value to `0..max`;\nmalformed values fall back to `0`. Ignored while `indeterminate` is set.\nWhen to use: set with `max` for determinate task advancement.\nWhen NOT to use: do not set a fabricated value for unknown-duration work;\nset `indeterminate` instead.",
              "attribute": "value",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [],
          "cssParts": [
            {
              "name": "indicator",
              "description": "The advancing fill or arc: indicator ink and indeterminate\nanimation."
            },
            {
              "name": "track",
              "description": "The full channel or ring: track ink and radius/stroke geometry."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-duration-medium-2",
              "description": "M3 md.sys.motion.duration.medium2 (300ms). onmars: MarsUI moderate step (240ms)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-progress-circular-size",
              "description": "dimension used by the progress component for circular size."
            },
            {
              "name": "--ki-progress-circular-track-width",
              "description": "dimension used by the progress component for circular track width."
            },
            {
              "name": "--ki-progress-indeterminate-duration",
              "description": "duration used by the progress component for progress indeterminate duration."
            },
            {
              "name": "--ki-progress-indicator-color",
              "description": "MarsUI fills components with the med-em (500) tone of the ramp (marsui-design-dna.md §1; specs/002-ki-button/design-extraction.md §§2.1-2.4 delta 500-vs-high-em): progress indicator uses surface.primary-med-em."
            },
            {
              "name": "--ki-progress-linear-radius",
              "description": "dimension used by the progress component for linear radius."
            },
            {
              "name": "--ki-progress-linear-thickness",
              "description": "dimension used by the progress component for linear thickness."
            },
            {
              "name": "--ki-progress-track-color",
              "description": "color used by the progress component for track color."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiProgress",
          "declaration": {
            "name": "KiProgress",
            "module": "dist/components/ki-progress.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-progress",
          "declaration": {
            "name": "KiProgress",
            "module": "dist/components/ki-progress.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-qr.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiQr",
          "customElement": true,
          "tagName": "ki-qr",
          "description": "A machine-scannable QR code that hands a declared value — a link, a\npairing payload — from the screen to a nearby camera, encoded locally\nand restyled entirely through tokens.",
          "whenToUse": "hand a URL or machine-readable payload from the screen to a\nnearby camera device: login pairing, tickets and passes, \"continue on\nmobile\" links, Wi-Fi sharing. Declare `value` (encoded verbatim, always\nlocally) and a purpose-stating `label` (\"Open onmars.dev on your phone\"),\nand always offer the same payload through an accessible alternative next\nto the code — a visible link or copyable text — because a QR code is only\nuseful to someone who can point a second device's camera at the screen.",
          "whenNotToUse": "data the person must read on this same screen (render text\nor a link), one-dimensional barcodes (out of scope), anything interactive\n(a QR code is not a button — pair it with a real control instead), secret\nvalues (anyone who can photograph the screen can decode them), or as the\nsole carrier of the payload (the accessible alternative is mandatory\nguidance). An always-empty ki-qr and a value beyond the ~2,331-byte\ncapacity are authoring mistakes: both render nothing, silently.",
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name stating the code's purpose (\"Open onmars.dev on your\nphone\"). The component exposes exactly one non-interactive image named\nby it, falling back to the encoded value when absent (FR-005) — never\nan unnamed graphic. The label is never rendered visually, and naming\nthe purpose is what tells assistive-technology users to look for the\naccessible alternative carrying the same payload (documented catalog\nguidance, FR-013)."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string | undefined"
              },
              "description": "The exact text the code encodes — the single source of the content,\nencoded locally as one UTF-8 byte segment at error-correction level M\n(non-ASCII text additionally carries the UTF-8 ECI designator, so real\nscanners decode the declared string rather than an ISO-8859-1\nmisreading), so an independent decoder recovers it byte-for-byte,\nincluding non-ASCII text (FR-001), and no network request is ever made — the value is\ndata, never behavior: the component never interprets, resolves,\nnavigates to or fetches it (FR-002). Changes re-encode in place. When\nabsent, empty or beyond the capacity of the densest symbol (~2,331\nbytes at level M), nothing renders and nothing errors (FR-003)."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name stating the code's purpose (\"Open onmars.dev on your\nphone\"). The component exposes exactly one non-interactive image named\nby it, falling back to the encoded value when absent (FR-005) — never\nan unnamed graphic. The label is never rendered visually, and naming\nthe purpose is what tells assistive-technology users to look for the\naccessible alternative carrying the same payload (documented catalog\nguidance, FR-013).",
              "attribute": "label",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "The exact text the code encodes — the single source of the content,\nencoded locally as one UTF-8 byte segment at error-correction level M\n(non-ASCII text additionally carries the UTF-8 ECI designator, so real\nscanners decode the declared string rather than an ISO-8859-1\nmisreading), so an independent decoder recovers it byte-for-byte,\nincluding non-ASCII text (FR-001), and no network request is ever made — the value is\ndata, never behavior: the component never interprets, resolves,\nnavigates to or fetches it (FR-002). Changes re-encode in place. When\nabsent, empty or beyond the capacity of the densest symbol (~2,331\nbytes at level M), nothing renders and nothing errors (FR-003).",
              "attribute": "value",
              "reflects": false
            }
          ],
          "events": [],
          "slots": [],
          "cssParts": [
            {
              "name": "code",
              "description": "The code tile: size, tile background and corners, quiet zone, module and finder shape/color."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-duration-medium-1",
              "description": "M3 md.sys.motion.duration.medium1 (250ms). onmars: MarsUI moderate step (240ms, 2x the 120ms base)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard-decelerate",
              "description": "Utility entrance curve. M3 md.sys.motion.easing.standard-decelerate. onmars: the MarsUI decelerate curve (ki.easing.out)."
            },
            {
              "name": "--ki-qr-background",
              "description": "color used by the qr component for the light tile behind the modules: the Figma symbol is transparent over the showcase card's Surface/s0 white, but a scannable code owns its tile — the scheme-stable white keeps dark-on-light module contrast in both schemes (FR-010, a documented theme obligation)."
            },
            {
              "name": "--ki-qr-color",
              "description": "color used by the qr component for module/finder ink (the master binds Text/high_em, whose light-scheme hue is Gray/950 #0a0c11; referenced as the scheme-stable primitive because FR-010 keeps QR ink from flipping in dark — 18.9:1 on white)."
            },
            {
              "name": "--ki-qr-finder-radius",
              "description": "dimension used by the qr component for the corner radius of the three finder rings, applied to the ring's midline in the code's internal coordinate space of 8px per module: Type=square renders square concentric finders (radius 0); the documented round value is {ki.radius.2xl} (14px midline = 18px outer edge, the 2.25-module radius measured on Type=round); the inner-edge and center radii derive by construction (stroke geometry and a 3/7 scale — design-extraction §5)."
            },
            {
              "name": "--ki-qr-module-radius",
              "description": "dimension used by the qr component for the corner radius of every data module, in the code's internal coordinate space of 8px per module: Type=square (the set default) renders pure squares (radius 0); the documented round value is {ki.radius.xs} (4px = half a module, the MarsUI Type=round dot carried as a token value, never an attribute — FR-007, 002 shape precedent)."
            },
            {
              "name": "--ki-qr-quiet-zone",
              "description": "dimension used by the qr component for the light quiet zone around the modules: the 8px band measured on both 128px variants (about two modules of the sample matrices), painted as tile padding and preserved at any token-driven size (FR-008)."
            },
            {
              "name": "--ki-qr-radius",
              "description": "dimension used by the qr component for the tile corners: the QR_code frames are square with no own radius (the rounded showcase card beneath is framing, not anatomy — design-extraction §1)."
            },
            {
              "name": "--ki-qr-size",
              "description": "dimension used by the qr component for size (MarsUI 128x128 symbol frame via the dedicated ki.size.qr surface size; replaces the 120px space-scale approximation)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiQr",
          "declaration": {
            "name": "KiQr",
            "module": "dist/components/ki-qr.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-qr",
          "declaration": {
            "name": "KiQr",
            "module": "dist/components/ki-qr.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-radio.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiRadio",
          "customElement": true,
          "tagName": "ki-radio",
          "description": "One option in a token-styled radio group.",
          "whenToUse": "place inside `ki-radio-group` when a person must choose\nexactly one of a small visible set.",
          "whenNotToUse": "`ki-radio` standalone, multiple selection,\nor authored selection state; set the parent group's `value` instead.",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents this option from being selected or focused. Disabled options are\nskipped by group arrow navigation and omitted from form submission when\nselected before becoming disabled.\nWhen NOT to use: do not use disabled as a temporary loading state."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string"
              },
              "default": "'on'",
              "description": "Submission value projected by the parent `ki-radio-group` when this option\nis selected. Omit for native radio parity with value `\"on\"`.\nWhen NOT to use: do not use `value` to author selection; set the group's\n`value` property or attribute."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents this option from being selected or focused. Disabled options are\nskipped by group arrow navigation and omitted from form submission when\nselected before becoming disabled.\nWhen NOT to use: do not use disabled as a temporary loading state.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "'on'",
              "description": "Submission value projected by the parent `ki-radio-group` when this option\nis selected. Omit for native radio parity with value `\"on\"`.\nWhen NOT to use: do not use `value` to author selection; set the group's\n`value` property or attribute.",
              "attribute": "value",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Option label. This is the accessible name and activation surface."
            }
          ],
          "cssParts": [
            {
              "name": "control",
              "description": "Visual ring and selected dot."
            },
            {
              "name": "label",
              "description": "Wrapper around the option label."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-effect-component-primary-default-shadow",
              "description": "MarsUI Component_effect/primary_default: drop 0/1/1/-0.5 plus inner White/12 0/3/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur)) — CSS cannot mix backdrop blur into box-shadow."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-spring",
              "description": "Gentle overshoot curve for glass pops and playful state transfers. onmars: ki.easing.spring; no MarsUI Figma motion variable exists (documented completion of the motion language)."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-radio-border-width",
              "description": "dimension used by the radio component for border width."
            },
            {
              "name": "--ki-radio-control-radius",
              "description": "dimension used by the radio component for control radius."
            },
            {
              "name": "--ki-radio-control-size",
              "description": "dimension used by the radio component for control size."
            },
            {
              "name": "--ki-radio-dot-shadow",
              "description": "shadow used by the radio component for the selected dot (MarsUI Small_dark_shadow: drop 0/2/3/-1.5 Elevation/shadow_dark, the lifted-dot look of the master)."
            },
            {
              "name": "--ki-radio-dot-size",
              "description": "dimension used by the radio component for dot size."
            },
            {
              "name": "--ki-radio-focus-ring-color",
              "description": "color used by the radio component for focus ring color."
            },
            {
              "name": "--ki-radio-focus-ring-offset",
              "description": "dimension used by the radio component for focus ring offset."
            },
            {
              "name": "--ki-radio-focus-ring-shadow",
              "description": "shadow used by the radio component for the focus ring glow (MarsUI Focus/primary: 3px spread ring at 20% — see ki.focus.primary. specs/002-ki-button/design-extraction.md §2.5 recorded 40%, having read the alpha off the Dark canvas mode, same double mechanism as ki-button: glow plus the opaque indicator)."
            },
            {
              "name": "--ki-radio-focus-ring-width",
              "description": "dimension used by the radio component for focus ring width."
            },
            {
              "name": "--ki-radio-gap",
              "description": "dimension used by the radio component for gap (MarsUI md label pairing: Space/xl 12px for the 20px circle / 24px target geometry)."
            },
            {
              "name": "--ki-radio-label-font-size",
              "description": "dimension used by the radio component for label font size (MarsUI md pairing: body_2 15px; line-height stays 24 and weight 500)."
            },
            {
              "name": "--ki-radio-label-font-weight",
              "description": "font weight used by the radio component for label font weight."
            },
            {
              "name": "--ki-radio-label-line-height",
              "description": "dimension used by the radio component for label line height."
            },
            {
              "name": "--ki-radio-min-target",
              "description": "dimension used by the radio component for min target."
            },
            {
              "name": "--ki-radio-selected-active-bg",
              "description": "color used by the radio component for selected active background (MarsUI defines no pressed state; mirrors rest)."
            },
            {
              "name": "--ki-radio-selected-active-border",
              "description": "color used by the radio component for selected active border (same as the fill: borderless look)."
            },
            {
              "name": "--ki-radio-selected-active-fg",
              "description": "color used by the radio component for selected active foreground."
            },
            {
              "name": "--ki-radio-selected-active-overlay",
              "description": "color used by the radio component for the selected pressed wash (ki-button active/overlay precedent). MarsUI defines no pressed fill and the brand ramp has no darker rung that survives the dark scheme, so the press composites the pressed state layer over the rest fill — a keyboard hold shows a real paint delta even under reduced motion, where the transform compress is gated off (bare-page state-delta contract)."
            },
            {
              "name": "--ki-radio-selected-disabled-bg",
              "description": "color used by the radio component for selected disabled background (MarsUI Surface/disabled_med_em Gray/300)."
            },
            {
              "name": "--ki-radio-selected-disabled-border",
              "description": "color used by the radio component for selected disabled border (same as the fill: borderless look)."
            },
            {
              "name": "--ki-radio-selected-disabled-fg",
              "description": "color used by the radio component for selected disabled dot (MarsUI Surface/disabled_base_em Gray/100 — a light dot one quiet value step above the gray donut, not a dark dot)."
            },
            {
              "name": "--ki-radio-selected-hover-bg",
              "description": "color used by the radio component for selected hover background (the master has no selected-hover variant; mirrors ki-checkbox checked hover: a real delta in both schemes)."
            },
            {
              "name": "--ki-radio-selected-hover-border",
              "description": "color used by the radio component for selected hover border (same as the fill: borderless look)."
            },
            {
              "name": "--ki-radio-selected-hover-fg",
              "description": "color used by the radio component for selected hover foreground."
            },
            {
              "name": "--ki-radio-selected-rest-bg",
              "description": "color used by the radio component for selected rest background (MarsUI active radio is a solid Surface/primary_med_em #845abe circle — the filled donut with a white dot is the signature, mirroring ki-checkbox checked)."
            },
            {
              "name": "--ki-radio-selected-rest-border",
              "description": "color used by the radio component for selected rest border (same as the fill: the selected circle is borderless in the master)."
            },
            {
              "name": "--ki-radio-selected-rest-fg",
              "description": "color used by the radio component for selected rest dot (MarsUI Text/primary_on_primary white 8px dot)."
            },
            {
              "name": "--ki-radio-unselected-active-bg",
              "description": "color used by the radio component for unselected active background. Brief §1: neutral surface em ramp one step above hover (s1→s2), matching ki-checkbox unchecked active; the primary-tinted alpha stays in radio.material3."
            },
            {
              "name": "--ki-radio-unselected-active-border",
              "description": "color used by the radio component for unselected active border."
            },
            {
              "name": "--ki-radio-unselected-active-fg",
              "description": "color used by the radio component for unselected active foreground."
            },
            {
              "name": "--ki-radio-unselected-disabled-bg",
              "description": "color used by the radio component for unselected disabled background (MarsUI Surface/disabled_med_em Gray/300)."
            },
            {
              "name": "--ki-radio-unselected-disabled-border",
              "description": "color used by the radio component for unselected disabled border (same as the fill: borderless look in the master)."
            },
            {
              "name": "--ki-radio-unselected-disabled-fg",
              "description": "color used by the radio component for unselected disabled dot color (dot is hidden unselected; kept coherent with the disabled ladder, retiring the deprecated ki.text.muted alias)."
            },
            {
              "name": "--ki-radio-unselected-hover-bg",
              "description": "color used by the radio component for unselected hover background. Brief §1: onmars hover is neutral (hover_overlay / surface em ramp), matching ki-checkbox unchecked hover (s1); the former primary-tinted alpha is the M3 state-layer pattern and stays in radio.material3."
            },
            {
              "name": "--ki-radio-unselected-hover-border",
              "description": "color used by the radio component for unselected hover border."
            },
            {
              "name": "--ki-radio-unselected-hover-fg",
              "description": "color used by the radio component for unselected hover foreground."
            },
            {
              "name": "--ki-radio-unselected-rest-bg",
              "description": "color used by the radio component for unselected rest background."
            },
            {
              "name": "--ki-radio-unselected-rest-border",
              "description": "color used by the radio component for unselected rest border."
            },
            {
              "name": "--ki-radio-unselected-rest-fg",
              "description": "color used by the radio component for unselected rest foreground."
            },
            {
              "name": "--ki-surface-special-dark-s0-light-s2",
              "description": "semantic color for surface special dark s0 light s2."
            },
            {
              "name": "--ki-surface-special-light-s0-dark-s4",
              "description": "semantic color for surface special light s0 dark s4."
            },
            {
              "name": "--ki-text-high-em",
              "description": "semantic color for text high em."
            },
            {
              "name": "--ki-text-med-em",
              "description": "semantic color for text med em."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiRadio",
          "declaration": {
            "name": "KiRadio",
            "module": "dist/components/ki-radio.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-radio",
          "declaration": {
            "name": "KiRadio",
            "module": "dist/components/ki-radio.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-radio-group.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiRadioGroup",
          "customElement": true,
          "tagName": "ki-radio-group",
          "description": "A token-styled radio group that owns selection, keyboard coordination and\nform participation for slotted `ki-radio` options.",
          "whenToUse": "a person must choose exactly one of a small set of mutually\nexclusive options that should all be visible at once.",
          "whenNotToUse": "many options or tight space (use `ki-select`), independent\non/off settings (use `ki-checkbox` or `ki-switch`), multiple selection, or\nauthored selection on options; set this group's `value` instead.",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the whole group unavailable, skips it in Tab order and removes its\nform entry.\nWhen NOT to use: do not use disabled for pending/loading semantics."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string"
              },
              "description": "Visible label and accessible-name source for the radiogroup.\nWhen NOT to use: do not omit it; unlabeled groups fail accessibility gates."
            },
            {
              "name": "name",
              "fieldName": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key for the selected option's value. Omit when the group should\nnot contribute a form entry.\nWhen NOT to use: do not put `name` on `ki-radio` options; their internal\nnative inputs are intentionally unnamed."
            },
            {
              "name": "required",
              "fieldName": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Requires one selected option for form submission. The group uses platform\n`valueMissing` from its internal native radio inputs.\nWhen NOT to use: do not use required when no answer is acceptable."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Projection of the current selection. The initial attribute selects the\nfirst matching option; unmatched values leave the group unselected and\noperable. Assigning the property updates selection silently.\nWhen NOT to use: never author selection on `ki-radio`; set this value."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the whole group unavailable, skips it in Tab order and removes its\nform entry.\nWhen NOT to use: do not use disabled for pending/loading semantics.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Visible label and accessible-name source for the radiogroup.\nWhen NOT to use: do not omit it; unlabeled groups fail accessibility gates.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key for the selected option's value. Omit when the group should\nnot contribute a form entry.\nWhen NOT to use: do not put `name` on `ki-radio` options; their internal\nnative inputs are intentionally unnamed.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "required",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Requires one selected option for form submission. The group uses platform\n`valueMissing` from its internal native radio inputs.\nWhen NOT to use: do not use required when no answer is acceptable.",
              "attribute": "required",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Projection of the current selection. The initial attribute selects the\nfirst matching option; unmatched values leave the group unselected and\noperable. Assigning the property updates selection silently.\nWhen NOT to use: never author selection on `ki-radio`; set this value.",
              "attribute": "value",
              "reflects": false
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "`ki-radio` options. Document order is navigation order."
            }
          ],
          "cssParts": [
            {
              "name": "label",
              "description": "Visible group label and accessible-name source."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-radio-group-gap",
              "description": "dimension used by the radio group component for gap."
            },
            {
              "name": "--ki-radio-group-label-font-size",
              "description": "dimension used by the radio group component for label font size."
            },
            {
              "name": "--ki-radio-group-label-font-weight",
              "description": "font weight used by the radio group component for label font weight."
            },
            {
              "name": "--ki-radio-group-label-line-height",
              "description": "dimension used by the radio group component for label line height (closest measured analogue: Radio_label sm 13/20; no group-title master exists — low-confidence refinement)."
            },
            {
              "name": "--ki-text-high-em",
              "description": "semantic color for text high em."
            },
            {
              "name": "--ki-text-med-em",
              "description": "semantic color for text med em."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiRadioGroup",
          "declaration": {
            "name": "KiRadioGroup",
            "module": "dist/components/ki-radio-group.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-radio-group",
          "declaration": {
            "name": "KiRadioGroup",
            "module": "dist/components/ki-radio-group.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-scroller.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiScroller",
          "customElement": true,
          "tagName": "ki-scroller",
          "description": "A bounded scroll container that clips its content along one declared axis\nand replaces platform scrollbar chrome with a token-resolved indicator.",
          "whenToUse": "a bounded region inside a view whose content can outgrow it:\nchat or message panes, code and log blocks, tag rows, sidebar navigation,\ntall menus inside cards. Give it bounds (its size comes entirely from your\nlayout) and a `label` (required: the accessible name of the scroll\nregion). Scrolling stays native — wheel, touch, keyboard and indicator\ndrag operate the viewport directly.",
          "whenNotToUse": "page-level scrolling (the browser's job), carousels or\npaginated media (future indicator/carousel patterns), virtualized long\ncollections, multi-column tabular data, or nesting scrollers (v1\nguarantees a single scroll axis per region). Cross-axis overflow is an\nauthoring mistake: the scroller scrolls its declared axis only and clips\nthe other — wrap or size content on the cross axis.",
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name of the scroll region (\"Release notes\", \"Chat\nmessages\"). Assistive technology receives a `region` with this name\nwhose slotted content keeps its own semantics (FR-006). Documented as\nrequired: a scroller without a label renders but exposes no accessible\nname and fails the accessibility audit (015-ki-progress precedent).\nThe label is never rendered visually."
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "type": {
                "text": "\"horizontal\" | \"vertical\""
              },
              "default": "'vertical'",
              "description": "Declared scroll axis, mapping the design source's `Type` axis:\n`vertical` (default) scrolls the block axis, `horizontal` the inline\naxis. One axis per instance; the cross axis clips. A structural axis,\nnever appearance — thickness, shape and colors of the indicator are\nper-theme `--ki-scroller-*` tokens. An unrecognized value matches no\nstyle selector and no `horizontal` code path, so the scroller keeps\nthe default vertical behavior (fallback by CSS construction plus a\nsingle strict comparison — no validation code, FR-002/FR-009)."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name of the scroll region (\"Release notes\", \"Chat\nmessages\"). Assistive technology receives a `region` with this name\nwhose slotted content keeps its own semantics (FR-006). Documented as\nrequired: a scroller without a label renders but exposes no accessible\nname and fails the accessibility audit (015-ki-progress precedent).\nThe label is never rendered visually.",
              "attribute": "label",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "orientation",
              "privacy": "public",
              "type": {
                "text": "\"horizontal\" | \"vertical\""
              },
              "default": "'vertical'",
              "description": "Declared scroll axis, mapping the design source's `Type` axis:\n`vertical` (default) scrolls the block axis, `horizontal` the inline\naxis. One axis per instance; the cross axis clips. A structural axis,\nnever appearance — thickness, shape and colors of the indicator are\nper-theme `--ki-scroller-*` tokens. An unrecognized value matches no\nstyle selector and no `horizontal` code path, so the scroller keeps\nthe default vertical behavior (fallback by CSS construction plus a\nsingle strict comparison — no validation code, FR-002/FR-009).",
              "attribute": "orientation",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "The scrollable content: it keeps its own semantics and sizes the scroll extent along the declared axis."
            }
          ],
          "cssParts": [
            {
              "name": "viewport",
              "description": "The scroll viewport: surface, focus ring and, as native\nscrollbar chrome styled from `--ki-scroller-*` tokens, the indicator."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-scroller-focus-ring-color",
              "description": "color used by the scroller component for the viewport focus ring: the keyboard-focusable scroll region (FR-005) adopts the ki-dialog focus-ring pair verbatim."
            },
            {
              "name": "--ki-scroller-focus-ring-offset",
              "description": "dimension used by the scroller component for the viewport focus ring offset (ki-dialog precedent)."
            },
            {
              "name": "--ki-scroller-focus-ring-shadow",
              "description": "shadow used by the scroller component for the viewport focus ring glow (MarsUI Focus/primary 3px 20%-alpha halo, the ki-button double mechanism; completes the theming hook ki-scroller.css already consumes)."
            },
            {
              "name": "--ki-scroller-focus-ring-width",
              "description": "dimension used by the scroller component for the viewport focus ring width (ki-dialog precedent)."
            },
            {
              "name": "--ki-scroller-gutter",
              "description": "dimension used by the scroller component for the clearance on each side of the thumb: the 2px padding-inline of the 8px Scroller rail (rail thickness = thumb-thickness + 2×gutter)."
            },
            {
              "name": "--ki-scroller-surface",
              "description": "color used by the scroller component for the viewport surface: transparent in onmars — the scroller shows the consumer's own surface; a theme may resolve a proper surface here (FR-007)."
            },
            {
              "name": "--ki-scroller-thumb-color",
              "description": "color used by the scroller component for the indicator thumb: Inverse_white/alpha_6, the exact variable bound to the scroll pill on both Scroller variants (Black/5 light, White/5 dark) — the scheme flip rides the semantic layer (specs/023-ki-scroller/design-extraction.md)."
            },
            {
              "name": "--ki-scroller-thumb-min-length",
              "description": "dimension used by the scroller component for the minimum thumb length along the scroll axis: the 16px min-height on the Figma scroll pill; the actual length stays the native visible-fraction proportion (FR-003)."
            },
            {
              "name": "--ki-scroller-thumb-radius",
              "description": "dimension used by the scroller component for the thumb shape: Radius/radius_round bound in Figma — the pill is a radius token, never an attribute (002 shape precedent)."
            },
            {
              "name": "--ki-scroller-thumb-thickness",
              "description": "dimension used by the scroller component for the thumb cross size: the 4px pill measured inside the 8px MarsUI rail (rail = thumb + 2×gutter, verified 2026-07-17)."
            },
            {
              "name": "--ki-scroller-track-color",
              "description": "color used by the scroller component for the track: the MarsUI pill floats directly on the content surface with no visible track — transparent in onmars; a theme opts into a visible track through this token, never an attribute."
            },
            {
              "name": "--ki-scroller-track-inset",
              "description": "dimension used by the scroller component for the rail end insets: Space/xs bound as the 4px padding along the scroll axis of both Scroller variants (design-extraction §Decisiones 5)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiScroller",
          "declaration": {
            "name": "KiScroller",
            "module": "dist/components/ki-scroller.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-scroller",
          "declaration": {
            "name": "KiScroller",
            "module": "dist/components/ki-scroller.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-select.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiSelect",
          "customElement": true,
          "tagName": "ki-select",
          "description": "A form-associated select-only combobox for choosing one option from\ndeclarative `ki-option` children.",
          "whenToUse": "choose exactly one value from a known closed list, especially\nwhen there are roughly five or more choices or space is limited.",
          "whenNotToUse": "`ki-radio-group` for a few always-visible choices,\n`ki-input` for free or searchable text, `ki-checkbox`/`ki-switch` for\nbinary decisions, or multiselect and command menus.",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents opening, removes the trigger from keyboard reach, and excludes\nthe select from form submission. Boolean presence semantics apply."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Visible label and accessible-name source for the combobox trigger.\nWhen NOT to use: do not omit it; unlabeled selects are invalid usage."
            },
            {
              "name": "name",
              "fieldName": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key used when a selected option contributes its value.\nWhen NOT to use: omit it when the select should not submit data."
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Text shown while no option is selected.\nWhen NOT to use: do not use it as a replacement for `label`."
            },
            {
              "name": "required",
              "fieldName": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Requires a non-empty submitted value. The platform validation message is\ndonated by a hidden native select."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Live projection of the selected option value, or `\"\"` when unselected.\nAssigning it selects the first matching option silently; the attribute is\nthe reset/default declaration and is not updated by user commits."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents opening, removes the trigger from keyboard reach, and excludes\nthe select from form submission. Boolean presence semantics apply.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Visible label and accessible-name source for the combobox trigger.\nWhen NOT to use: do not omit it; unlabeled selects are invalid usage.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key used when a selected option contributes its value.\nWhen NOT to use: omit it when the select should not submit data.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "placeholder",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Text shown while no option is selected.\nWhen NOT to use: do not use it as a replacement for `label`.",
              "attribute": "placeholder",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "required",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Requires a non-empty submitted value. The platform validation message is\ndonated by a hidden native select.",
              "attribute": "required",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Live projection of the selected option value, or `\"\"` when unselected.\nAssigning it selects the first matching option silently; the attribute is\nthe reset/default declaration and is not updated by user commits.",
              "attribute": "value",
              "reflects": false
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "`ki-option` data children. They do not paint; rows are mirrored."
            }
          ],
          "cssParts": [
            {
              "name": "indicator",
              "description": "Decorative dropdown indicator."
            },
            {
              "name": "label",
              "description": "Visible label and accessible-name source."
            },
            {
              "name": "listbox",
              "description": "Popup listbox surface."
            },
            {
              "name": "option",
              "description": "Mirrored option row rendered in this shadow root."
            },
            {
              "name": "trigger",
              "description": "Native button carrying the combobox role."
            },
            {
              "name": "value",
              "description": "Displayed selection or placeholder."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-effect-component-secondary-default-shadow",
              "description": "MarsUI Component_effect/secondary_default: drop 0/2/1.5/-0.5 plus inner White/3 0/2/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur))."
            },
            {
              "name": "--ki-elevation-e1",
              "description": "MarsUI Elevation/e1. Scheme-aware: every layer colors through ki.elevation.shadow."
            },
            {
              "name": "--ki-focus-danger",
              "description": "MarsUI Focus/danger: persistent 3px spread ring of Outline/danger_base_em_alpha (danger-500 at 20% light / 40% dark) — the danger state signal on Input_field and Dropdown masters (measured rgb(252,220,219) over white). Pairs with a white fill and hairline border; Kimen keeps its opaque danger border on top as a declared a11y deviation."
            },
            {
              "name": "--ki-motion-distance-sm",
              "description": "Motion travel distance sm (4px): small slide/settle offsets."
            },
            {
              "name": "--ki-motion-distance-xs",
              "description": "Motion travel distance xs (2px): hover-lift offsets."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-option-disabled-bg",
              "description": "color used by the option component for disabled background."
            },
            {
              "name": "--ki-option-disabled-fg",
              "description": "color used by the option component for disabled foreground."
            },
            {
              "name": "--ki-option-font-size",
              "description": "dimension used by the option component for font size."
            },
            {
              "name": "--ki-option-highlight-bg",
              "description": "color used by the option component for keyboard-highlight background (MarsUI active row = same Black/3 wash plus Elevation/e1; purple is reserved for the selected tint)."
            },
            {
              "name": "--ki-option-highlight-fg",
              "description": "color used by the option component for highlight foreground."
            },
            {
              "name": "--ki-option-hover-bg",
              "description": "color used by the option component for hover background (MarsUI hover_overlay_inverse Black/3 wash over the glass panel — not a solid surface step)."
            },
            {
              "name": "--ki-option-hover-fg",
              "description": "color used by the option component for hover foreground."
            },
            {
              "name": "--ki-option-min-target",
              "description": "dimension used by the option component for min target (MarsUI Dropmenu row height Space/11xl 36px; comfortably above the 24px a11y floor)."
            },
            {
              "name": "--ki-option-padding-inline",
              "description": "dimension used by the option component for padding inline."
            },
            {
              "name": "--ki-option-radius",
              "description": "dimension used by the option component for radius (MarsUI Radius/component/radius_lg 12px bound on Dropmenu rows)."
            },
            {
              "name": "--ki-option-rest-bg",
              "description": "color used by the option component for rest background (MarsUI Dropmenu rows are transparent over the glass panel; only hover/selected paint)."
            },
            {
              "name": "--ki-option-rest-fg",
              "description": "color used by the option component for rest foreground."
            },
            {
              "name": "--ki-option-selected-bg",
              "description": "color used by the option component for selected background."
            },
            {
              "name": "--ki-option-selected-fg",
              "description": "color used by the option component for selected foreground."
            },
            {
              "name": "--ki-select-border-block-end-width",
              "description": "dimension used by the select component for border block end width."
            },
            {
              "name": "--ki-select-border-block-start-width",
              "description": "dimension used by the select component for border block start width."
            },
            {
              "name": "--ki-select-border-inline-end-width",
              "description": "dimension used by the select component for border inline end width."
            },
            {
              "name": "--ki-select-border-inline-start-width",
              "description": "dimension used by the select component for border inline start width."
            },
            {
              "name": "--ki-select-border-width",
              "description": "dimension used by the select component for border width (MarsUI Input_cell strokeWeight 1px; the color stays ki.outline.control per the declared a11y deviation — only the 2px width was undocumented)."
            },
            {
              "name": "--ki-select-disabled-bg",
              "description": "color used by the select component for disabled background."
            },
            {
              "name": "--ki-select-disabled-border",
              "description": "color used by the select component for disabled border (MarsUI Outline/base_em Black/3)."
            },
            {
              "name": "--ki-select-disabled-fg",
              "description": "color used by the select component for disabled foreground (MarsUI disabled text Text/base_em Gray/400; disabled cells are exempt from the contrast sweep)."
            },
            {
              "name": "--ki-select-disabled-label-fg",
              "description": "color used by the select component for disabled label foreground."
            },
            {
              "name": "--ki-select-focus-bg",
              "description": "color used by the select component for focus background (MarsUI Dropdown focus fill Surface/Special/light-s0_dark-s4)."
            },
            {
              "name": "--ki-select-focus-border",
              "description": "color used by the select component for focus border (MarsUI active is glow-only: the border stays the rest hairline while Focus/primary carries the emphasis — repointed from ki.outline.primary-high-em per the fidelity audit; material3 keeps the opaque primary border via its override)."
            },
            {
              "name": "--ki-select-focus-fg",
              "description": "color used by the select component for focus foreground."
            },
            {
              "name": "--ki-select-focus-label-fg",
              "description": "color used by the select component for focus label foreground."
            },
            {
              "name": "--ki-select-focus-ring-color",
              "description": "color used by the select component for focus ring color."
            },
            {
              "name": "--ki-select-focus-ring-offset",
              "description": "dimension used by the select component for focus ring offset."
            },
            {
              "name": "--ki-select-focus-ring-shadow",
              "description": "shadow used by the select component for the focus ring glow (MarsUI Focus/primary: 3px spread ring at 20% — see ki.focus.primary. specs/002-ki-button/design-extraction.md §2.5 recorded 40%, having read the alpha off the Dark canvas mode, same double mechanism as ki-button: glow plus the opaque indicator)."
            },
            {
              "name": "--ki-select-focus-ring-width",
              "description": "dimension used by the select component for focus ring width."
            },
            {
              "name": "--ki-select-font-size",
              "description": "dimension used by the select component for font size."
            },
            {
              "name": "--ki-select-font-weight",
              "description": "font weight used by the select component for the trigger value (MarsUI UI/Body 1/medium: weight 600)."
            },
            {
              "name": "--ki-select-gap",
              "description": "dimension used by the select component for gap."
            },
            {
              "name": "--ki-select-height",
              "description": "dimension used by the select component for height."
            },
            {
              "name": "--ki-select-hover-border",
              "description": "color used by the select component for hover border. Brief §1: hover moves along the neutral outline em ramp (Black/12), matching ki-input/ki-textarea; the primary accent outline is the focus language (Focus/primary), not hover."
            },
            {
              "name": "--ki-select-hover-fg",
              "description": "color used by the select component for hover foreground."
            },
            {
              "name": "--ki-select-hover-label-fg",
              "description": "color used by the select component for hover label foreground."
            },
            {
              "name": "--ki-select-indicator-glyph-size",
              "description": "dimension used by the select component for the chevron glyph box inside the 18px indicator slot (MarsUI Dropdown chevron 8px border-box square drawn by [part=indicator]::before)."
            },
            {
              "name": "--ki-select-indicator-size",
              "description": "dimension used by the select component for indicator size."
            },
            {
              "name": "--ki-select-label-font-size",
              "description": "dimension used by the select component for label font size (MarsUI UI/Para/medium: body_1 13px)."
            },
            {
              "name": "--ki-select-label-font-weight",
              "description": "font weight used by the select component for label font weight."
            },
            {
              "name": "--ki-select-label-gap",
              "description": "dimension used by the select component for label gap."
            },
            {
              "name": "--ki-select-label-line-height",
              "description": "dimension used by the select component for label line height (MarsUI line_height/para 20px)."
            },
            {
              "name": "--ki-select-label-padding-inline",
              "description": "dimension used by the select component for label padding inline (MarsUI Input_label row 2px inset aligning the label ink with the cell radius; matches ki-input/ki-textarea)."
            },
            {
              "name": "--ki-select-line-height",
              "description": "dimension used by the select component for the trigger value line height (MarsUI body_1 24px)."
            },
            {
              "name": "--ki-select-listbox-backdrop-blur",
              "description": "backdrop blur used by the select component listbox glass panel (MarsUI BACKGROUND_BLUR Blur/48 = CSS 24px; material3 resolves to blur none via its override)."
            },
            {
              "name": "--ki-select-listbox-bg",
              "description": "color used by the select component for listbox background (MarsUI Dropmenu glass panel Surface/Special/blur_base_light White/80; pair with backdrop-filter blur(var(--ki-select-listbox-backdrop-blur)))."
            },
            {
              "name": "--ki-select-listbox-max-block-size",
              "description": "dimension used by the select component for listbox max block size (surface size scale; the former ki.space.25xl reference misused the spacing scale)."
            },
            {
              "name": "--ki-select-listbox-offset",
              "description": "dimension used by the select component for listbox offset."
            },
            {
              "name": "--ki-select-listbox-padding",
              "description": "dimension used by the select component for listbox padding (MarsUI Dropmenu content inset Space/xl 12px)."
            },
            {
              "name": "--ki-select-listbox-radius",
              "description": "dimension used by the select component for listbox radius (MarsUI Radius/big_component/radius_sm 20px bound on the Dropmenu panel)."
            },
            {
              "name": "--ki-select-listbox-shadow",
              "description": "shadow used by the select component for the listbox: MarsUI elevation ramp e3 (brief §5), the medium floating-surface level, replacing the former hand-composed offset/color shadow. Declared level: e3 (M3 analog: menu/dialog band; material3 overrides to e2 = md.sys.elevation.level2 for menus)."
            },
            {
              "name": "--ki-select-min-target",
              "description": "dimension used by the select component for min target."
            },
            {
              "name": "--ki-select-padding-inline",
              "description": "dimension used by the select component for padding inline."
            },
            {
              "name": "--ki-select-placeholder-fg",
              "description": "color used by the select component for placeholder foreground."
            },
            {
              "name": "--ki-select-radius",
              "description": "dimension used by the select component for radius (MarsUI Radius/component/radius_md 10px; component ramp so personality modes reach it)."
            },
            {
              "name": "--ki-select-rest-bg",
              "description": "color used by the select component for rest background (MarsUI Dropdown rest fill Surface/Special/light-s0_dark-s2: white light, Dark/800 dark)."
            },
            {
              "name": "--ki-select-rest-border",
              "description": "color used by the select component for rest border."
            },
            {
              "name": "--ki-select-rest-fg",
              "description": "color used by the select component for rest foreground."
            },
            {
              "name": "--ki-select-rest-label-fg",
              "description": "color used by the select component for rest label foreground."
            },
            {
              "name": "--ki-surface-hover-overlay-inverse",
              "description": "semantic color for surface hover overlay inverse."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            },
            {
              "name": "--ki-typography-line-height-para",
              "description": "semantic dimension for typography line height para."
            },
            {
              "name": "--ki-typography-weight-body-medium",
              "description": "semantic font weight for typography weight body medium."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiSelect",
          "declaration": {
            "name": "KiSelect",
            "module": "dist/components/ki-select.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-select",
          "declaration": {
            "name": "KiSelect",
            "module": "dist/components/ki-select.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-status.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiStatus",
          "customElement": true,
          "tagName": "ki-status",
          "description": "A tiny, non-interactive status dot that marks the state of a nearby item.",
          "whenToUse": "mark a state with minimal footprint adjacent to (or overlaid\non) the item it describes: presence on an avatar, health of a service\nlist entry, connection state in a toolbar. Label it (`label`) or pair it\nwith adjacent visible text — color is never the only carrier of the\nmeaning (WCAG 1.4.1).",
          "whenNotToUse": "short labeled status text (that pill is ki-badge — this dot\nnever renders text), notification counters or the overlay attachment\nmechanism (a future, separate nav-badge concern), messages that need\nattention or announcement (ki-alert — the dot has no live region),\nprogress or loading (ki-progress). An unlabeled dot without adjacent\nvisible text is an authoring mistake (WCAG 1.4.1).",
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name for the state (\"Online\", \"Build failing\"). With a\nlabel the dot is exposed to assistive technology as a named\nnon-interactive image (role `img`); without one it is decorative and\ncontributes nothing to the accessibility tree — the meaning must then\nlive in adjacent visible text (FR-003, FR-008). The label is never\nrendered visually: visible status text belongs to ki-badge. Runtime\nchanges are not announced (no live region, FR-005)."
            },
            {
              "name": "ring",
              "fieldName": "ring",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Draws a separating ring around the dot for placement over media (an\navatar photo), keeping it distinguishable from the pixels beneath. A\nper-instance functional axis — MarsUI ships Outline=True|False as\nsibling variants under one theme (recorded deviation from the 002\ntoken-only rule) — while ring width and color stay per-theme\n`--ki-status-ring-*` tokens. The ring paints outside the dot's box and\nnever shifts layout."
            },
            {
              "name": "tone",
              "fieldName": "tone",
              "type": {
                "text": "\"danger\" | \"info\" | \"neutral\" | \"success\" | \"warning\""
              },
              "default": "'neutral'",
              "description": "Semantic intent, never appearance: each tone resolves its fill from\nthe per-theme `--ki-status-{tone}-color` tokens. An unrecognized value\nmatches no style selector, so the dot keeps the neutral appearance\n(fallback by CSS construction — no validation code, FR-007)."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name for the state (\"Online\", \"Build failing\"). With a\nlabel the dot is exposed to assistive technology as a named\nnon-interactive image (role `img`); without one it is decorative and\ncontributes nothing to the accessibility tree — the meaning must then\nlive in adjacent visible text (FR-003, FR-008). The label is never\nrendered visually: visible status text belongs to ki-badge. Runtime\nchanges are not announced (no live region, FR-005).",
              "attribute": "label",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "ring",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Draws a separating ring around the dot for placement over media (an\navatar photo), keeping it distinguishable from the pixels beneath. A\nper-instance functional axis — MarsUI ships Outline=True|False as\nsibling variants under one theme (recorded deviation from the 002\ntoken-only rule) — while ring width and color stay per-theme\n`--ki-status-ring-*` tokens. The ring paints outside the dot's box and\nnever shifts layout.",
              "attribute": "ring",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "tone",
              "privacy": "public",
              "type": {
                "text": "\"danger\" | \"info\" | \"neutral\" | \"success\" | \"warning\""
              },
              "default": "'neutral'",
              "description": "Semantic intent, never appearance: each tone resolves its fill from\nthe per-theme `--ki-status-{tone}-color` tokens. An unrecognized value\nmatches no style selector, so the dot keeps the neutral appearance\n(fallback by CSS construction — no validation code, FR-007).",
              "attribute": "tone",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [],
          "cssParts": [
            {
              "name": "dot",
              "description": "The dot itself: size, tone fill, radius, ring and effects."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-emphasized-decelerate",
              "description": "Expressive entrance curve. M3 md.sys.motion.easing.emphasized-decelerate. onmars: the MarsUI decelerate curve (ki.easing.out)."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-status-danger-color",
              "description": "color used by the status component for the danger tone fill: Surface/danger_med_em, the exact variable bound to the Type=danger Status variant (Danger/500)."
            },
            {
              "name": "--ki-status-info-color",
              "description": "color used by the status component for the info tone fill: no Figma Status variant ships an info Type, so the fill extrapolates the verified med-em 500 pattern to the Info ramp (001 contract, 010/015 precedent) — declared for founder ratification."
            },
            {
              "name": "--ki-status-neutral-color",
              "description": "color used by the status component for the neutral tone fill: Surface/disabled_high_em, the exact variable bound to the Type=disabled Status variant (Gray/500 light, White/32 dark) — MarsUI's disabled gray maps to the charter neutral tone (spec Assumptions)."
            },
            {
              "name": "--ki-status-radius",
              "description": "dimension used by the status component for the dot shape: Radius/radius_round bound in Figma — the round dot is a radius token, never an attribute (002 shape precedent)."
            },
            {
              "name": "--ki-status-ring-color",
              "description": "color used by the status component for the separating ring: Outline/inverse_black, the exact variable bound to Outline=True variants — white over light surfaces, black over dark ones, so the ring reads as a cutout from the underlying media (FR-002)."
            },
            {
              "name": "--ki-status-ring-width",
              "description": "dimension used by the status component for the separating ring: the 2px stroke on every Outline=True Status variant (FR-002)."
            },
            {
              "name": "--ki-status-shadow",
              "description": "shadow used by the status component for the dot effects: the exact MarsUI pair on every Status variant — e1 drop (0/1/1/-0.5 in the scheme shadow color) plus inner White/12 highlight (0/3/3), i.e. Component_effect/primary_default's box-shadow layers. The effect's backdrop blur is deliberately NOT applied: a 4px dot has no glass surface to blur (brief §5 perf note, glass restraint)."
            },
            {
              "name": "--ki-status-size",
              "description": "dimension used by the status component for the dot: the MarsUI 4px dot, Space/xs bound to every Status variant (specs/021-ki-status/design-extraction.md). One size per theme, never an attribute (FR-006)."
            },
            {
              "name": "--ki-status-success-color",
              "description": "color used by the status component for the success tone fill: Surface/success_med_em, the exact variable bound to the Type=success Status variant (Success/500)."
            },
            {
              "name": "--ki-status-warning-color",
              "description": "color used by the status component for the warning tone fill: Surface/warning_med_em, the exact variable bound to the Type=warning Status variant (Warning/500)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiStatus",
          "declaration": {
            "name": "KiStatus",
            "module": "dist/components/ki-status.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-status",
          "declaration": {
            "name": "KiStatus",
            "module": "dist/components/ki-status.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-switch.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiSwitch",
          "customElement": true,
          "tagName": "ki-switch",
          "description": "A token-styled switch for immediate on/off settings.",
          "whenToUse": "binary settings whose change takes effect immediately, always\nwith a slotted label.",
          "whenNotToUse": "selections collected for later form submission; use\nki-checkbox for recorded choices, ki-radio-group for mutually exclusive\nchoices, and ki-button for actions.",
          "attributes": [
            {
              "name": "checked",
              "fieldName": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Live on/off state. Boolean presence semantics apply: any present\n`checked` attribute value, including `checked=\"false\"` or malformed\nagent output, means on. Omit the attribute to express off.\nWhen to use: set the initial on state for a setting that applies\nimmediately.\nWhen NOT to use: do not use a switch for choices saved only on submit;\nuse ki-checkbox for that pattern."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents toggling, removes the switch from keyboard reach, excludes it\nfrom form data, and exposes the unavailable state to assistive technology.\nWhen to use: make a setting temporarily unavailable while preserving its\ncurrent state.\nWhen NOT to use: do not use disabled for pending or loading states."
            },
            {
              "name": "name",
              "fieldName": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key contributed while the switch is on.\nWhen to use: include the immediate setting in native form data when on.\nWhen NOT to use: omit when no form entry should be submitted."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data value submitted while on. Omit for native checkbox parity: the\nsubmitted value defaults to `on`.\nWhen to use: submit a domain-specific value instead of the default `on`.\nWhen NOT to use: do not set a value to represent off; off contributes\nnothing."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "checked",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Live on/off state. Boolean presence semantics apply: any present\n`checked` attribute value, including `checked=\"false\"` or malformed\nagent output, means on. Omit the attribute to express off.\nWhen to use: set the initial on state for a setting that applies\nimmediately.\nWhen NOT to use: do not use a switch for choices saved only on submit;\nuse ki-checkbox for that pattern.",
              "attribute": "checked",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents toggling, removes the switch from keyboard reach, excludes it\nfrom form data, and exposes the unavailable state to assistive technology.\nWhen to use: make a setting temporarily unavailable while preserving its\ncurrent state.\nWhen NOT to use: do not use disabled for pending or loading states.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key contributed while the switch is on.\nWhen to use: include the immediate setting in native form data when on.\nWhen NOT to use: omit when no form entry should be submitted.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data value submitted while on. Omit for native checkbox parity: the\nsubmitted value defaults to `on`.\nWhen to use: submit a domain-specific value instead of the default `on`.\nWhen NOT to use: do not set a value to represent off; off contributes\nnothing.",
              "attribute": "value",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Label content. This is the accessible name source."
            }
          ],
          "cssParts": [
            {
              "name": "label",
              "description": "Label wrapper around the default slot."
            },
            {
              "name": "thumb",
              "description": "Traveling handle."
            },
            {
              "name": "track",
              "description": "On/off channel."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-effect-small-dark-shadow",
              "description": "MarsUI Small_dark_shadow: drop 0/2/3/-1.5 in Elevation/shadow_dark (Black/32 light, Black/48 dark). Lifts small light glyphs off saturated fills — the radio selected dot and the switch pointer carry it in the masters."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-switch-border-width",
              "description": "dimension used by the switch component for border width (MarsUI tracks are borderless; the 1px hairline in ki.outline.control is the declared WCAG 1.4.11 deviation at half the former weight, so the control stops reading as an outlined pill)."
            },
            {
              "name": "--ki-switch-checked-active-border",
              "description": "color used by the switch component for checked active border."
            },
            {
              "name": "--ki-switch-checked-active-thumb",
              "description": "color used by the switch component for checked active thumb."
            },
            {
              "name": "--ki-switch-checked-active-track",
              "description": "color used by the switch component for checked active track."
            },
            {
              "name": "--ki-switch-checked-disabled-border",
              "description": "color used by the switch component for checked disabled border."
            },
            {
              "name": "--ki-switch-checked-disabled-thumb",
              "description": "color used by the switch component for checked disabled thumb (MarsUI pointer keeps its light construction in every state including disabled)."
            },
            {
              "name": "--ki-switch-checked-disabled-track",
              "description": "color used by the switch component for checked disabled track (MarsUI disabled track keeps the OFF rest fill surface/disabled_med_em; the disabled signal lives in the glyph in the master)."
            },
            {
              "name": "--ki-switch-checked-hover-border",
              "description": "color used by the switch component for checked hover border."
            },
            {
              "name": "--ki-switch-checked-hover-thumb",
              "description": "color used by the switch component for checked hover thumb."
            },
            {
              "name": "--ki-switch-checked-hover-track",
              "description": "color used by the switch component for checked hover track."
            },
            {
              "name": "--ki-switch-checked-rest-border",
              "description": "color used by the switch component for checked rest border."
            },
            {
              "name": "--ki-switch-checked-rest-thumb",
              "description": "color used by the switch component for checked rest thumb."
            },
            {
              "name": "--ki-switch-checked-rest-track",
              "description": "color used by the switch component for checked rest track."
            },
            {
              "name": "--ki-switch-focus-ring-color",
              "description": "color used by the switch component for focus ring color."
            },
            {
              "name": "--ki-switch-focus-ring-offset",
              "description": "dimension used by the switch component for focus ring offset."
            },
            {
              "name": "--ki-switch-focus-ring-shadow",
              "description": "shadow used by the switch component for the focus ring glow (MarsUI Focus/primary: 3px spread ring at 20% — see ki.focus.primary. specs/002-ki-button/design-extraction.md §2.5 recorded 40%, having read the alpha off the Dark canvas mode, same double mechanism as ki-button: glow plus the opaque indicator)."
            },
            {
              "name": "--ki-switch-focus-ring-width",
              "description": "dimension used by the switch component for focus ring width."
            },
            {
              "name": "--ki-switch-gap",
              "description": "dimension used by the switch component for gap (MarsUI sm label pairing: Space/md 8px)."
            },
            {
              "name": "--ki-switch-glyph-dash-height",
              "description": "dimension used by the switch component for the disabled dash glyph block size (Figma pointer exports: 8x2 rounded dash)."
            },
            {
              "name": "--ki-switch-glyph-height",
              "description": "dimension used by the switch component for the thumb state glyph block size (Figma pointer exports: 4px check ink height)."
            },
            {
              "name": "--ki-switch-glyph-width",
              "description": "dimension used by the switch component for the thumb state glyph inline size (Figma pointer exports: 8px check/dash ink box inside the thumb)."
            },
            {
              "name": "--ki-switch-min-target",
              "description": "dimension used by the switch component for min target (MarsUI component frame is 28px tall for sm/md — the designed interactive footprint)."
            },
            {
              "name": "--ki-switch-thumb-inset",
              "description": "dimension used by the switch component for thumb inset."
            },
            {
              "name": "--ki-switch-thumb-radius",
              "description": "dimension used by the switch component for thumb radius (MarsUI pointer corner radius is half the height with corner smoothing; radius_round clamps to the smoothed pill)."
            },
            {
              "name": "--ki-switch-thumb-size",
              "description": "dimension used by the switch component for thumb size."
            },
            {
              "name": "--ki-switch-thumb-width",
              "description": "dimension used by the switch component for thumb inline size (MarsUI md pointer is 22x18 — wider than tall; thumb-size remains the block size)."
            },
            {
              "name": "--ki-switch-track-height",
              "description": "dimension used by the switch component for track height."
            },
            {
              "name": "--ki-switch-track-radius",
              "description": "dimension used by the switch component for track radius."
            },
            {
              "name": "--ki-switch-track-width",
              "description": "dimension used by the switch component for track width."
            },
            {
              "name": "--ki-switch-unchecked-active-border",
              "description": "color used by the switch component for unchecked active border."
            },
            {
              "name": "--ki-switch-unchecked-active-thumb",
              "description": "color used by the switch component for unchecked active thumb."
            },
            {
              "name": "--ki-switch-unchecked-active-track",
              "description": "color used by the switch component for unchecked active track (one step beyond hover; the master defines no pressed variant)."
            },
            {
              "name": "--ki-switch-unchecked-disabled-border",
              "description": "color used by the switch component for unchecked disabled border."
            },
            {
              "name": "--ki-switch-unchecked-disabled-thumb",
              "description": "color used by the switch component for unchecked disabled thumb (MarsUI pointer keeps its light construction in every state including disabled)."
            },
            {
              "name": "--ki-switch-unchecked-disabled-track",
              "description": "color used by the switch component for unchecked disabled track (MarsUI disabled track keeps the OFF rest fill surface/disabled_med_em; the disabled signal lives in the glyph in the master)."
            },
            {
              "name": "--ki-switch-unchecked-hover-border",
              "description": "color used by the switch component for unchecked hover border."
            },
            {
              "name": "--ki-switch-unchecked-hover-thumb",
              "description": "color used by the switch component for unchecked hover thumb."
            },
            {
              "name": "--ki-switch-unchecked-hover-track",
              "description": "color used by the switch component for unchecked hover track (Kimen-invented one-step ramp over the corrected rest fill; the master defines no hover variant)."
            },
            {
              "name": "--ki-switch-unchecked-rest-border",
              "description": "color used by the switch component for unchecked rest border."
            },
            {
              "name": "--ki-switch-unchecked-rest-thumb",
              "description": "color used by the switch component for unchecked rest thumb."
            },
            {
              "name": "--ki-switch-unchecked-rest-track",
              "description": "color used by the switch component for unchecked rest track (MarsUI OFF track = surface/disabled_med_em #dddfe4 light / White-18 dark — a solid soft fill, not an outlined pill)."
            },
            {
              "name": "--ki-text-base-em",
              "description": "semantic color for text base em."
            },
            {
              "name": "--ki-text-high-em",
              "description": "semantic color for text high em."
            },
            {
              "name": "--ki-text-primary-on-primary-light",
              "description": "semantic color for text primary on primary light."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            },
            {
              "name": "--ki-typography-line-height-body-2",
              "description": "semantic dimension for typography line height body 2."
            },
            {
              "name": "--ki-typography-size-body-2",
              "description": "semantic dimension for typography size body 2."
            },
            {
              "name": "--ki-typography-weight-body-normal",
              "description": "semantic font weight for typography weight body normal."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiSwitch",
          "declaration": {
            "name": "KiSwitch",
            "module": "dist/components/ki-switch.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-switch",
          "declaration": {
            "name": "KiSwitch",
            "module": "dist/components/ki-switch.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-tab.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiTab",
          "customElement": true,
          "tagName": "ki-tab",
          "description": "One selectable tab inside a `ki-tabs` view switcher.",
          "whenToUse": "label one peer content view inside `ki-tabs`, with optional\n`start` and `end` slot media.",
          "whenNotToUse": "standalone, for form value\nselection, or for page navigation; use the parent group's `value` instead\nof authoring `selected`.",
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents selection by every modality and exposes the unavailable state.\nBoolean presence semantics apply: `disabled=\"false\"` is still disabled."
            },
            {
              "name": "selected",
              "fieldName": "selected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Output-only selected state written by `ki-tabs`. Set the group's `value`\nto choose an initial tab; author-set `selected` is overwritten."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Pairing identifier shared with a `ki-tab-panel`. The first tab with a\nvalue owns it; later duplicates render but are not selectable."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Prevents selection by every modality and exposes the unavailable state.\nBoolean presence semantics apply: `disabled=\"false\"` is still disabled.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "selected",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Output-only selected state written by `ki-tabs`. Set the group's `value`\nto choose an initial tab; author-set `selected` is overwritten.",
              "attribute": "selected",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Pairing identifier shared with a `ki-tab-panel`. The first tab with a\nvalue owns it; later duplicates render but are not selectable.",
              "attribute": "value",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Tab label; this is the accessible name source."
            },
            {
              "name": "end",
              "description": "Trailing icon or media. Follows writing direction."
            },
            {
              "name": "start",
              "description": "Leading icon or media. Follows writing direction."
            }
          ],
          "cssParts": [
            {
              "name": "indicator",
              "description": "Decorative selected-tab marker."
            },
            {
              "name": "tab",
              "description": "Tab surface."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-motion-distance-xs",
              "description": "Motion travel distance xs (2px): hover-lift offsets."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard",
              "description": "Standard interaction transition easing curve."
            },
            {
              "name": "--ki-tab-focus-ring-color",
              "description": "color used by the tab component for focus ring color."
            },
            {
              "name": "--ki-tab-focus-ring-offset",
              "description": "dimension used by the tab component for focus ring offset."
            },
            {
              "name": "--ki-tab-focus-ring-shadow",
              "description": "shadow used by the tab component for the focus ring glow (MarsUI Focus/primary: 3px spread ring at 20% — see ki.focus.primary. specs/002-ki-button/design-extraction.md §2.5 recorded 40%, having read the alpha off the Dark canvas mode, same double mechanism as ki-button: glow plus the opaque indicator)."
            },
            {
              "name": "--ki-tab-focus-ring-width",
              "description": "dimension used by the tab component for focus ring width."
            },
            {
              "name": "--ki-tab-font-size",
              "description": "dimension used by the tab component for font size."
            },
            {
              "name": "--ki-tab-font-weight",
              "description": "font weight used by the tab component for font weight."
            },
            {
              "name": "--ki-tab-gap",
              "description": "dimension used by the tab component for gap."
            },
            {
              "name": "--ki-tab-indicator-color",
              "description": "color used by the tab component for indicator color (MarsUI active underline is Outline/inverse_white: black in light, white in dark — the inverse neutral, not primary)."
            },
            {
              "name": "--ki-tab-indicator-radius",
              "description": "dimension used by the tab component for indicator radius (the master underline is a square-ended 2px bottom border)."
            },
            {
              "name": "--ki-tab-indicator-size",
              "description": "dimension used by the tab component for indicator size."
            },
            {
              "name": "--ki-tab-line-height",
              "description": "dimension used by the tab component for line height."
            },
            {
              "name": "--ki-tab-min-block-size",
              "description": "dimension used by the tab component for min block size (MarsUI Tab_nav md bar height 40px: 24px body_1 label + 8px block-end clearance + underline; retargeted from ki.space.7xl per the fidelity audit — material3 pins its own value)."
            },
            {
              "name": "--ki-tab-padding-block-end",
              "description": "dimension used by the tab component for padding block end (MarsUI Tab_nav_item: 8px inset keeping the 2px underline clear of the 13/24 label; formalizes the fallback ki-tab.css already consumes)."
            },
            {
              "name": "--ki-tab-padding-inline",
              "description": "dimension used by the tab component for padding inline (MarsUI items carry no inline padding: spacing comes from the bar gap and the underline spans the full item width)."
            },
            {
              "name": "--ki-tab-radius",
              "description": "dimension used by the tab component for radius."
            },
            {
              "name": "--ki-tab-selected-active-bg",
              "description": "color used by the tab component for selected active background (MarsUI Tab_nav is transparent_inverse in every state; background pills are Switcher language)."
            },
            {
              "name": "--ki-tab-selected-active-fg",
              "description": "color used by the tab component for selected active foreground (MarsUI active tab label is neutral Text/high_em — never purple; master 10048:1240)."
            },
            {
              "name": "--ki-tab-selected-disabled-bg",
              "description": "color used by the tab component for selected disabled background (no disabled variant exists in Tab_nav; disabled must be quieter than rest, not a filled pill)."
            },
            {
              "name": "--ki-tab-selected-disabled-fg",
              "description": "color used by the tab component for selected disabled foreground (MarsUI disabled ladder: Gray/500 light / White-32 dark, the value ki-status and ki-switch already use for disabled glyphs)."
            },
            {
              "name": "--ki-tab-selected-hover-bg",
              "description": "color used by the tab component for selected hover background (MarsUI Tab_nav is transparent_inverse in every state; background pills are Switcher language)."
            },
            {
              "name": "--ki-tab-selected-hover-fg",
              "description": "color used by the tab component for selected hover foreground (MarsUI active tab label is neutral Text/high_em — never purple; master 10048:1240)."
            },
            {
              "name": "--ki-tab-selected-rest-bg",
              "description": "color used by the tab component for selected rest background (MarsUI Tab_nav is transparent_inverse in every state; background pills are Switcher language)."
            },
            {
              "name": "--ki-tab-selected-rest-fg",
              "description": "color used by the tab component for selected rest foreground (MarsUI active tab label is neutral Text/high_em — never purple; master 10048:1240)."
            },
            {
              "name": "--ki-tab-unselected-active-bg",
              "description": "color used by the tab component for unselected active background (MarsUI Tab_nav is transparent_inverse in every state)."
            },
            {
              "name": "--ki-tab-unselected-active-fg",
              "description": "color used by the tab component for unselected active foreground (mirrors hover; MarsUI defines no pressed variant)."
            },
            {
              "name": "--ki-tab-unselected-disabled-bg",
              "description": "color used by the tab component for unselected disabled background (no disabled variant exists in Tab_nav; disabled must be quieter than rest, not a filled pill)."
            },
            {
              "name": "--ki-tab-unselected-disabled-fg",
              "description": "color used by the tab component for unselected disabled foreground (MarsUI disabled ladder: Gray/500 light / White-32 dark, the value ki-status and ki-switch already use for disabled glyphs)."
            },
            {
              "name": "--ki-tab-unselected-hover-bg",
              "description": "color used by the tab component for unselected hover background (MarsUI Tab_nav is transparent_inverse in every state)."
            },
            {
              "name": "--ki-tab-unselected-hover-fg",
              "description": "color used by the tab component for unselected hover foreground (with rest at med_em, hover darkens one em step, preserving the master rest-to-hover direction)."
            },
            {
              "name": "--ki-tab-unselected-rest-bg",
              "description": "color used by the tab component for unselected rest background (MarsUI Tab_nav is transparent_inverse in every state)."
            },
            {
              "name": "--ki-tab-unselected-rest-fg",
              "description": "color used by the tab component for unselected rest foreground (Figma inactive is Text/low_em, which fails the 4.5:1 text gate at 13px; med_em is the gate-compliant rest value — declared deviation)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiTab",
          "declaration": {
            "name": "KiTab",
            "module": "dist/components/ki-tab.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-tab",
          "declaration": {
            "name": "KiTab",
            "module": "dist/components/ki-tab.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-tab-panel.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiTabPanel",
          "customElement": true,
          "tagName": "ki-tab-panel",
          "description": "One content view paired with a `ki-tab` inside `ki-tabs`.",
          "whenToUse": "hold the content for one peer tab view, sharing `value` with\nits `ki-tab`.",
          "whenNotToUse": "standalone, as lazy mounting, or for page\nnavigation; orphan and duplicate panels are hidden by the parent group.",
          "attributes": [
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Pairing identifier shared with a `ki-tab`. The first panel with a value\nowns it; duplicate or orphan panels stay hidden."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Pairing identifier shared with a `ki-tab`. The first panel with a value\nowns it; duplicate or orphan panels stay hidden.",
              "attribute": "value",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Panel content."
            }
          ],
          "cssParts": [
            {
              "name": "panel",
              "description": "Panel surface."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-motion-distance-sm",
              "description": "Motion travel distance sm (4px): small slide/settle offsets."
            },
            {
              "name": "--ki-motion-duration-medium-1",
              "description": "M3 md.sys.motion.duration.medium1 (250ms). onmars: MarsUI moderate step (240ms, 2x the 120ms base)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-tab-panel-bg",
              "description": "color used by the tab panel component for background (Tab_nav masters have no panel chrome: content sits on the ambient surface; the panel never paints a surface it does not own)."
            },
            {
              "name": "--ki-tab-panel-fg",
              "description": "color used by the tab panel component for foreground (pairs a scheme-correct text color with whatever ground the transparent panel sits on — fixes black-on-black slotted text in dark)."
            },
            {
              "name": "--ki-tab-panel-focus-ring-color",
              "description": "color used by the tab panel component for focus ring color."
            },
            {
              "name": "--ki-tab-panel-focus-ring-offset",
              "description": "dimension used by the tab panel component for focus ring offset."
            },
            {
              "name": "--ki-tab-panel-focus-ring-width",
              "description": "dimension used by the tab panel component for focus ring width."
            },
            {
              "name": "--ki-tab-panel-padding-block",
              "description": "dimension used by the tab panel component for padding block."
            },
            {
              "name": "--ki-tab-panel-padding-inline",
              "description": "dimension used by the tab panel component for padding inline."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiTabPanel",
          "declaration": {
            "name": "KiTabPanel",
            "module": "dist/components/ki-tab-panel.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-tab-panel",
          "declaration": {
            "name": "KiTabPanel",
            "module": "dist/components/ki-tab-panel.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-tabs.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiTabs",
          "customElement": true,
          "tagName": "ki-tabs",
          "description": "A tab group for switching between peer content views.",
          "whenToUse": "switch between small sets of peer views inside the same page,\nwith one visible panel at a time.",
          "whenNotToUse": "selecting form values\n(use `ki-radio-group`), page navigation (use links), step flows, or\nstandalone `ki-tab` / `ki-tab-panel` children outside this group.",
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name for the tablist. Always provide one when multiple tab\ngroups may appear in a view. When NOT to use: do not use `label` as a\nvisible heading; render visible context in surrounding content."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Resolved selected value. The attribute declares the initial request;\nthe live property falls back to the first enabled owner tab, or `\"\"`\nwhen no tab is selectable. Programmatic writes are silent."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name for the tablist. Always provide one when multiple tab\ngroups may appear in a view. When NOT to use: do not use `label` as a\nvisible heading; render visible context in surrounding content.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Resolved selected value. The attribute declares the initial request;\nthe live property falls back to the first enabled owner tab, or `\"\"`\nwhen no tab is selectable. Programmatic writes are silent.",
              "attribute": "value",
              "reflects": false
            }
          ],
          "events": [
            {
              "name": "ki-change",
              "type": {
                "text": "CustomEvent<{ value: string }>"
              },
              "description": "Fired once after a user-driven selection change from pointer or keyboard\nnavigation. `detail.value` is the resolved selected value and `value` is\nalready current when listeners run. Programmatic `value` writes and\nfirst-render fallback are silent."
            }
          ],
          "slots": [
            {
              "name": "",
              "description": "`ki-tab` and `ki-tab-panel` children. Tabs are auto-assigned to an\ninternal named slot as managed output."
            }
          ],
          "cssParts": [
            {
              "name": "tablist",
              "description": "Internal strip carrying the `tablist` role."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-tabs-divider-color",
              "description": "color used by the tabs component for divider color."
            },
            {
              "name": "--ki-tabs-divider-width",
              "description": "dimension used by the tabs component for the tablist divider width (the Tab_nav bar has no stroke; the hook stays for consumers to opt back in — material3 keeps its hairline via its override)."
            },
            {
              "name": "--ki-tabs-gap",
              "description": "dimension used by the tabs component for gap (MarsUI md bar item gap Space/8xl 26px; the gap carries all spacing now that items have zero inline padding)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiTabs",
          "declaration": {
            "name": "KiTabs",
            "module": "dist/components/ki-tabs.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-tabs",
          "declaration": {
            "name": "KiTabs",
            "module": "dist/components/ki-tabs.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-textarea.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiTextarea",
          "customElement": true,
          "tagName": "ki-textarea",
          "description": "A token-styled multiline text field with native form semantics.",
          "whenToUse": "free-form text longer than one line, such as comments,\ndescriptions, messages, delivery notes, or addresses when paired with a\nmatching `autocomplete` purpose.",
          "whenNotToUse": "single-line values (`ki-input`), constrained choices,\nrich or formatted text editing, or search boxes.\n\nAgent note: initial text is declared through the `value` attribute; element\ntext content is ignored. Enter inserts a line break and never submits the\nenclosing form, the inverse of `ki-input`.",
          "attributes": [
            {
              "name": "autocomplete",
              "fieldName": "autocomplete",
              "type": {
                "text": "string | undefined"
              },
              "description": "Autofill detail token forwarded to the native textarea.\nWhen to use: expose entry purpose such as `street-address` when available.\nWhen NOT to use: omit when no valid autofill purpose applies."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables editing, focus, validation and form-data contribution.\nWhen to use: make a field temporarily unavailable. When NOT to use: do not\nuse disabled for readonly review text that should submit."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string"
              },
              "description": "Visible label rendered by the component and used as the accessible name.\nWhen to use: always provide a concise label for the requested long-form\ntext. When NOT to use: do not substitute placeholder text for the label."
            },
            {
              "name": "name",
              "fieldName": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key used when the textarea submits with a form.\nWhen to use: provide for fields whose text must be included in FormData.\nWhen NOT to use: omit for display-only or client-only fields."
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Hint shown while the textarea is empty.\nWhen to use: add an example or short formatting hint. When NOT to use: do\nnot use placeholder as the accessible name or required instruction."
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the textarea focusable and selectable while rejecting edits.\nWhen to use: show submitted or policy text that should still be included\nin form data. When NOT to use: do not use readonly to remove a field from\nsubmission; use disabled."
            },
            {
              "name": "required",
              "fieldName": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Requires a non-empty value before form submission.\nWhen to use: mark mandatory long-form text. When NOT to use: do not pair\nwith `readonly` expecting it to block; readonly fields are validation\nexempt like native textareas."
            },
            {
              "name": "rows",
              "fieldName": "rows",
              "type": {
                "text": "number"
              },
              "default": "2",
              "description": "Visible line count. Invalid, non-numeric, zero, or negative values fall\nback to 2; no auto-grow or user resize handle exists in v1.\nWhen to use: set the stable multiline height needed by the layout. When\nNOT to use: do not use rows as a responsive size axis."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Live current text. The `value` attribute declares the reset default;\nelement text content is ignored. Programmatic assignments replace the\ndisplay and emit no events.\nWhen to use: preload or read free-form text, line breaks included. When\nNOT to use: do not put initial text between the element tags."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "autocomplete",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Autofill detail token forwarded to the native textarea.\nWhen to use: expose entry purpose such as `street-address` when available.\nWhen NOT to use: omit when no valid autofill purpose applies.",
              "attribute": "autocomplete",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Disables editing, focus, validation and form-data contribution.\nWhen to use: make a field temporarily unavailable. When NOT to use: do not\nuse disabled for readonly review text that should submit.",
              "attribute": "disabled",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Visible label rendered by the component and used as the accessible name.\nWhen to use: always provide a concise label for the requested long-form\ntext. When NOT to use: do not substitute placeholder text for the label.",
              "attribute": "label",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "name",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Form-data key used when the textarea submits with a form.\nWhen to use: provide for fields whose text must be included in FormData.\nWhen NOT to use: omit for display-only or client-only fields.",
              "attribute": "name",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "placeholder",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Hint shown while the textarea is empty.\nWhen to use: add an example or short formatting hint. When NOT to use: do\nnot use placeholder as the accessible name or required instruction.",
              "attribute": "placeholder",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "readonly",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Makes the textarea focusable and selectable while rejecting edits.\nWhen to use: show submitted or policy text that should still be included\nin form data. When NOT to use: do not use readonly to remove a field from\nsubmission; use disabled.",
              "attribute": "readonly",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "required",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Requires a non-empty value before form submission.\nWhen to use: mark mandatory long-form text. When NOT to use: do not pair\nwith `readonly` expecting it to block; readonly fields are validation\nexempt like native textareas.",
              "attribute": "required",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "rows",
              "privacy": "public",
              "type": {
                "text": "number"
              },
              "default": "2",
              "description": "Visible line count. Invalid, non-numeric, zero, or negative values fall\nback to 2; no auto-grow or user resize handle exists in v1.\nWhen to use: set the stable multiline height needed by the layout. When\nNOT to use: do not use rows as a responsive size axis.",
              "attribute": "rows",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "value",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Live current text. The `value` attribute declares the reset default;\nelement text content is ignored. Programmatic assignments replace the\ndisplay and emit no events.\nWhen to use: preload or read free-form text, line breaks included. When\nNOT to use: do not put initial text between the element tags.",
              "attribute": "value",
              "reflects": false
            }
          ],
          "events": [],
          "slots": [],
          "cssParts": [
            {
              "name": "field",
              "description": "The enclosure wrapper."
            },
            {
              "name": "label",
              "description": "Rendered visible label and accessible-name source."
            },
            {
              "name": "textarea",
              "description": "Internal native multiline control."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-textarea-border-block-end-width",
              "description": "dimension used by the textarea component for border block end width."
            },
            {
              "name": "--ki-textarea-border-block-start-width",
              "description": "dimension used by the textarea component for border block start width."
            },
            {
              "name": "--ki-textarea-border-inline-end-width",
              "description": "dimension used by the textarea component for border inline end width."
            },
            {
              "name": "--ki-textarea-border-inline-start-width",
              "description": "dimension used by the textarea component for border inline start width."
            },
            {
              "name": "--ki-textarea-disabled-bg",
              "description": "color used by the textarea component for disabled background (MarsUI Surface/disabled_base_em Gray/100; aligned with ki-input)."
            },
            {
              "name": "--ki-textarea-disabled-border",
              "description": "color used by the textarea component for disabled border."
            },
            {
              "name": "--ki-textarea-disabled-fg",
              "description": "color used by the textarea component for disabled foreground."
            },
            {
              "name": "--ki-textarea-disabled-label-fg",
              "description": "color used by the textarea component for disabled label foreground."
            },
            {
              "name": "--ki-textarea-disabled-placeholder-fg",
              "description": "color used by the textarea component for disabled placeholder foreground."
            },
            {
              "name": "--ki-textarea-focus-bg",
              "description": "color used by the textarea component for focus background (MarsUI active fill switches to white / dark s2 — modeled with the scheme ladder s0)."
            },
            {
              "name": "--ki-textarea-focus-fg",
              "description": "color used by the textarea component for focus foreground."
            },
            {
              "name": "--ki-textarea-focus-label-fg",
              "description": "color used by the textarea component for focus label foreground (MarsUI label is Text/med_em in every non-disabled state; matches ki-input)."
            },
            {
              "name": "--ki-textarea-focus-placeholder-fg",
              "description": "color used by the textarea component for focus placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-textarea-focus-ring-color",
              "description": "color used by the textarea component for focus ring color."
            },
            {
              "name": "--ki-textarea-focus-ring-offset",
              "description": "dimension used by the textarea component for focus ring offset."
            },
            {
              "name": "--ki-textarea-focus-ring-shadow",
              "description": "shadow used by the textarea component for the focus ring glow (MarsUI Focus/primary: 3px spread ring at 20% — see ki.focus.primary. specs/002-ki-button/design-extraction.md §2.5 recorded 40%, having read the alpha off the Dark canvas mode, same double mechanism as ki-button: glow plus the opaque indicator)."
            },
            {
              "name": "--ki-textarea-focus-ring-width",
              "description": "dimension used by the textarea component for focus ring width."
            },
            {
              "name": "--ki-textarea-font-size",
              "description": "dimension used by the textarea component for font size."
            },
            {
              "name": "--ki-textarea-font-weight",
              "description": "font weight used by the textarea component for font weight."
            },
            {
              "name": "--ki-textarea-hover-bg",
              "description": "color used by the textarea component for hover background (MarsUI hover = s2 + Black/3 overlay; s3 is the nearest token)."
            },
            {
              "name": "--ki-textarea-hover-border",
              "description": "color used by the textarea component for hover border."
            },
            {
              "name": "--ki-textarea-hover-fg",
              "description": "color used by the textarea component for hover foreground."
            },
            {
              "name": "--ki-textarea-hover-label-fg",
              "description": "color used by the textarea component for hover label foreground (MarsUI label is Text/med_em in every non-disabled state; matches ki-input)."
            },
            {
              "name": "--ki-textarea-hover-placeholder-fg",
              "description": "color used by the textarea component for hover placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-textarea-invalid-bg",
              "description": "color used by the textarea component for invalid background (MarsUI danger keeps the white active fill — no tinted slab; ring and hint carry the signal)."
            },
            {
              "name": "--ki-textarea-invalid-border",
              "description": "color used by the textarea component for invalid border."
            },
            {
              "name": "--ki-textarea-invalid-fg",
              "description": "color used by the textarea component for invalid foreground."
            },
            {
              "name": "--ki-textarea-invalid-label-fg",
              "description": "color used by the textarea component for invalid label foreground (MarsUI label is Text/med_em in every non-disabled state; matches ki-input)."
            },
            {
              "name": "--ki-textarea-invalid-placeholder-fg",
              "description": "color used by the textarea component for invalid placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-textarea-invalid-ring",
              "description": "shadow used by the textarea component for the persistent invalid ring (MarsUI Focus/danger: 3px danger-500 alpha spread; applied as box-shadow while :state(user-invalid))."
            },
            {
              "name": "--ki-textarea-label-font-size",
              "description": "dimension used by the textarea component for label font size (MarsUI UI/Para/medium: body_1 13px)."
            },
            {
              "name": "--ki-textarea-label-font-weight",
              "description": "font weight used by the textarea component for label font weight."
            },
            {
              "name": "--ki-textarea-label-gap",
              "description": "dimension used by the textarea component for label gap."
            },
            {
              "name": "--ki-textarea-label-line-height",
              "description": "dimension used by the textarea component for label line height (MarsUI line_height/para 20px)."
            },
            {
              "name": "--ki-textarea-label-padding-inline",
              "description": "dimension used by the textarea component for label padding inline (MarsUI Input_label row 2px inset aligning the label ink with the cell radius; matches ki-input)."
            },
            {
              "name": "--ki-textarea-line-height",
              "description": "dimension used by the textarea component for line height."
            },
            {
              "name": "--ki-textarea-min-target",
              "description": "dimension used by the textarea component for min target."
            },
            {
              "name": "--ki-textarea-padding-block",
              "description": "dimension used by the textarea component for padding block (MarsUI 96px md textarea: 12px ink inset)."
            },
            {
              "name": "--ki-textarea-padding-inline",
              "description": "dimension used by the textarea component for padding inline (MarsUI 96px md textarea: 12px ink inset)."
            },
            {
              "name": "--ki-textarea-radius",
              "description": "dimension used by the textarea component for radius (MarsUI Radius/component/radius_md 10px for the md size; component ramp so personality modes reach it)."
            },
            {
              "name": "--ki-textarea-readonly-bg",
              "description": "color used by the textarea component for readonly background."
            },
            {
              "name": "--ki-textarea-readonly-border",
              "description": "color used by the textarea component for readonly border."
            },
            {
              "name": "--ki-textarea-readonly-fg",
              "description": "color used by the textarea component for readonly foreground."
            },
            {
              "name": "--ki-textarea-readonly-label-fg",
              "description": "color used by the textarea component for readonly label foreground (MarsUI label is Text/med_em in every non-disabled state; matches ki-input)."
            },
            {
              "name": "--ki-textarea-readonly-placeholder-fg",
              "description": "color used by the textarea component for readonly placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-textarea-rest-bg",
              "description": "color used by the textarea component for rest background (MarsUI textarea fill Surface/s2)."
            },
            {
              "name": "--ki-textarea-rest-border",
              "description": "color used by the textarea component for rest border."
            },
            {
              "name": "--ki-textarea-rest-fg",
              "description": "color used by the textarea component for rest foreground."
            },
            {
              "name": "--ki-textarea-rest-label-fg",
              "description": "color used by the textarea component for rest label foreground (MarsUI label is Text/med_em in every non-disabled state; matches ki-input)."
            },
            {
              "name": "--ki-textarea-rest-placeholder-fg",
              "description": "color used by the textarea component for rest placeholder foreground (MarsUI placeholder Text/low_em; placeholder is not the accessible name, so it sits outside the 4.5:1 text sweep)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiTextarea",
          "declaration": {
            "name": "KiTextarea",
            "module": "dist/components/ki-textarea.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-textarea",
          "declaration": {
            "name": "KiTextarea",
            "module": "dist/components/ki-textarea.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-tooltip.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiTooltip",
          "customElement": true,
          "tagName": "ki-tooltip",
          "description": "A transient, text-only description bubble for one slotted trigger.",
          "whenToUse": "add a brief clarifying hint for an icon-only, abbreviated, or\notherwise ambiguous control when the same information is discoverable\nelsewhere in the interface.",
          "whenNotToUse": "essential or unique information in a tooltip; interactive\nor rich content in a tooltip; form validation messages, disabled controls,\nor touch-primary flows. Use visible layout text or a future `ki-popover`\npattern for those cases.",
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The entire tooltip content. The string is reflected to the slotted\ntrigger's accessible description without changing its name. Empty or\nwhitespace-only labels render no tooltip and expose no description.\nWhen to use: a short hint that clarifies the slotted trigger.\nWhen NOT to use: never use `label` for essential information, rich\ncontent, interactive content, validation messages, or information attached\nto disabled controls; put that content in visible UI or a future popover."
            },
            {
              "name": "placement",
              "fieldName": "placement",
              "type": {
                "text": "\"bottom\" | \"end\" | \"start\" | \"top\""
              },
              "default": "'top'",
              "description": "Preferred placement for the tooltip. The component may flip or clamp the\nrendered placement to keep the bubble inside the viewport; unknown runtime\nvalues fall back to `top`.\nWhen NOT to use: do not depend on placement for meaning or reading order."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "The entire tooltip content. The string is reflected to the slotted\ntrigger's accessible description without changing its name. Empty or\nwhitespace-only labels render no tooltip and expose no description.\nWhen to use: a short hint that clarifies the slotted trigger.\nWhen NOT to use: never use `label` for essential information, rich\ncontent, interactive content, validation messages, or information attached\nto disabled controls; put that content in visible UI or a future popover.",
              "attribute": "label",
              "reflects": false
            },
            {
              "kind": "field",
              "name": "placement",
              "privacy": "public",
              "type": {
                "text": "\"bottom\" | \"end\" | \"start\" | \"top\""
              },
              "default": "'top'",
              "description": "Preferred placement for the tooltip. The component may flip or clamp the\nrendered placement to keep the bubble inside the viewport; unknown runtime\nvalues fall back to `top`.\nWhen NOT to use: do not depend on placement for meaning or reading order.",
              "attribute": "placement",
              "reflects": true
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Exactly one interactive trigger. The component reflects `label` to\nthe trigger's `aria-description`."
            }
          ],
          "cssParts": [
            {
              "name": "tooltip",
              "description": "The non-focusable tooltip bubble."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-effect-component-secondary-default-shadow",
              "description": "MarsUI Component_effect/secondary_default: drop 0/2/1.5/-0.5 plus inner White/3 0/2/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur))."
            },
            {
              "name": "--ki-motion-distance-sm",
              "description": "Motion travel distance sm (4px): small slide/settle offsets."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-duration-instant",
              "description": "Zero-duration step: transitions that must complete immediately (reduced-motion fallbacks, instant handoffs)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard-accelerate",
              "description": "Utility exit curve. M3 md.sys.motion.easing.standard-accelerate. onmars: the MarsUI accelerate curve (ki.easing.in)."
            },
            {
              "name": "--ki-outline-secondary-button-top",
              "description": "semantic color for outline secondary button top."
            },
            {
              "name": "--ki-tooltip-backdrop-blur",
              "description": "backdrop blur used by the tooltip component glass card (MarsUI BACKGROUND_BLUR 24 = CSS 12px; material3 resolves to blur none via the semantic override)."
            },
            {
              "name": "--ki-tooltip-bg",
              "description": "color used by the tooltip component for background (flat fallback of the MarsUI glass card gradient; the v1 inverse bubble predates the master — specs/013 correction block. material3 keeps the inverse bubble via its override)."
            },
            {
              "name": "--ki-tooltip-bg-end",
              "description": "color used by the tooltip component for the glass gradient end (MarsUI Surface/special/light-s0_dark-s2)."
            },
            {
              "name": "--ki-tooltip-bg-start",
              "description": "color used by the tooltip component for the glass gradient start (MarsUI Surface/special/blur_base_light White/80; dark Dark/700 blur base). Paint background: linear-gradient(180deg, var(--ki-tooltip-bg-start), var(--ki-tooltip-bg-end))."
            },
            {
              "name": "--ki-tooltip-border-width",
              "description": "dimension used by the tooltip component for the bevel outline width (MarsUI glass card 1px Outline/secondary_button_top stroke; replaces the 1px literal ki-tooltip.css shipped while the token was pending)."
            },
            {
              "name": "--ki-tooltip-fg",
              "description": "color used by the tooltip component for foreground (MarsUI title row Text/high_em; lands together with the glass background — white-on-glass would break contrast)."
            },
            {
              "name": "--ki-tooltip-font-size",
              "description": "dimension used by the tooltip component for font size (MarsUI Heading_top style UI/Para/medium: body_1 13px)."
            },
            {
              "name": "--ki-tooltip-font-weight",
              "description": "font weight used by the tooltip component for font weight."
            },
            {
              "name": "--ki-tooltip-line-height",
              "description": "dimension used by the tooltip component for line height (MarsUI line_height/para 20px)."
            },
            {
              "name": "--ki-tooltip-max-inline-size",
              "description": "dimension used by the tooltip component for max inline size (288px; the master card is fixed 280px wide in its rich variants — the 8px divergence is a documented text-only reduction)."
            },
            {
              "name": "--ki-tooltip-offset",
              "description": "dimension used by the tooltip component for offset (MarsUI caret depth 8px with zero extra gap = trigger-to-card distance)."
            },
            {
              "name": "--ki-tooltip-padding-block",
              "description": "dimension used by the tooltip component for padding block (MarsUI card padding Space/xl 12px on all sides)."
            },
            {
              "name": "--ki-tooltip-padding-inline",
              "description": "dimension used by the tooltip component for padding inline (MarsUI card padding Space/xl 12px on all sides)."
            },
            {
              "name": "--ki-tooltip-radius",
              "description": "dimension used by the tooltip component for radius (MarsUI Tooltip master 12089:7621 List_wrap: Radius/big_component/radius_xs 16px)."
            },
            {
              "name": "--ki-tooltip-shadow",
              "description": "shadow used by the tooltip component for shadow (MarsUI Elevation/e4 on the master wrap)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiTooltip",
          "declaration": {
            "name": "KiTooltip",
            "module": "dist/components/ki-tooltip.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-tooltip",
          "declaration": {
            "name": "KiTooltip",
            "module": "dist/components/ki-tooltip.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "dist/components/ki-video.js",
      "declarations": [
        {
          "kind": "class",
          "name": "KiVideo",
          "customElement": true,
          "tagName": "ki-video",
          "description": "A themed video surface: a calm poster facade with exactly one accessible\nplay control over a slotted native `<video>` element. From the first\nactivation on, playback, scrubbing, volume, captions and fullscreen belong\nto the native player — Kimen ships no custom chrome.",
          "whenToUse": "playable content the person deliberately chooses to watch —\nproduct tours, talks, tutorials, announcements — presented as a poster\nwith one play control. Slot exactly one native `<video>` carrying its own\n`poster`, sources and `<track>` captions, omit `controls` (the component\nenables the native chrome the moment the facade yields, FR-002), and give\nthe control a `label` (required: the accessible name of the play button).",
          "whenNotToUse": "decorative background or ambient loops (plain CSS and\n`<video>` are the tool), audio-only content (a future audio component),\nembeds from streaming platforms that ship their own player chrome (use\ntheir embed), or static imagery (use an image, not a video). `autoplay`\non the slotted media is unsupported: the facade's contract is that\nplayback begins only by explicit user activation — never on scroll,\nhover or visibility — so preexisting `autoplay` and `controls` on the\nslotted media are cleared when it arrives, and any playback already\nrunning is paused (FR-003; the native chrome returns at activation).",
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name of the play control (\"Play the product tour\"). The\ncontrol is a real button exposing role button with exactly this name;\nthe frame contributes no role, name or state of its own (FR-004,\nFR-005). Documented as required: no default human-language string is\nbaked in, and an unlabeled control renders but fails the accessibility\naudit (015-ki-progress precedent). The label is never rendered visually."
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "privacy": "public",
              "type": {
                "text": "string | undefined"
              },
              "description": "Accessible name of the play control (\"Play the product tour\"). The\ncontrol is a real button exposing role button with exactly this name;\nthe frame contributes no role, name or state of its own (FR-004,\nFR-005). Documented as required: no default human-language string is\nbaked in, and an unlabeled control renders but fails the accessibility\naudit (015-ki-progress precedent). The label is never rendered visually.",
              "attribute": "label",
              "reflects": false
            }
          ],
          "events": [],
          "slots": [
            {
              "name": "",
              "description": "Exactly one native `<video>` element carrying its own poster, sources and `<track>` captions."
            }
          ],
          "cssParts": [
            {
              "name": "frame",
              "description": "The media frame: radius, clipping, the themed surface."
            },
            {
              "name": "play",
              "description": "The play control: overlay scrim, glass container and glyph."
            }
          ],
          "cssProperties": [
            {
              "name": "--ki-effect-component-primary-default-shadow",
              "description": "MarsUI Component_effect/primary_default: drop 0/1/1/-0.5 plus inner White/12 0/3/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur)) — CSS cannot mix backdrop blur into box-shadow."
            },
            {
              "name": "--ki-effect-component-primary-hover-shadow",
              "description": "MarsUI Component_effect/primary_hover: drops 0/20/20/-12 + 0/3/3/-1.5 + 0/1/1/-0.5 plus inner White/18 0/3/3. Pair with backdrop-filter blur(var(--ki-effect-component-backdrop-blur))."
            },
            {
              "name": "--ki-motion-duration-fast",
              "description": "Fast interaction transition duration."
            },
            {
              "name": "--ki-motion-duration-medium-1",
              "description": "M3 md.sys.motion.duration.medium1 (250ms). onmars: MarsUI moderate step (240ms, 2x the 120ms base)."
            },
            {
              "name": "--ki-motion-easing-out",
              "description": "Decelerating interaction transition easing curve."
            },
            {
              "name": "--ki-motion-easing-standard-accelerate",
              "description": "Utility exit curve. M3 md.sys.motion.easing.standard-accelerate. onmars: the MarsUI accelerate curve (ki.easing.in)."
            },
            {
              "name": "--ki-typography-family-body",
              "description": "semantic font family for typography family body."
            },
            {
              "name": "--ki-video-backdrop-blur",
              "description": "dimension used by the video component for the glass backdrop of the scrim and the play container (MarsUI Blur/24, identical to the button glass). material3 resolves to blur none via the semantic override."
            },
            {
              "name": "--ki-video-focus-ring-color",
              "description": "color used by the video component for the play control focus ring: the keyboard-reachable facade control (FR-004, S6) adopts the ki-dialog/ki-icon-button focus-ring pair verbatim."
            },
            {
              "name": "--ki-video-focus-ring-offset",
              "description": "dimension used by the video component for the play control focus ring offset (ki-dialog precedent)."
            },
            {
              "name": "--ki-video-focus-ring-width",
              "description": "dimension used by the video component for the play control focus ring width (ki-dialog precedent)."
            },
            {
              "name": "--ki-video-frame-radius",
              "description": "dimension used by the video component for the frame corners: Radius/big_component/radius_xs, the exact variable bound to the Size=md Video frame (node 12089:6570, specs/025-ki-video/design-extraction.md) — the sm frame's radius_md is the scale demo, not a second API value."
            },
            {
              "name": "--ki-video-motion-duration",
              "description": "duration used by the video component for the facade dismissal fade: the Figma set documents no motion, so onmars resolves the single transition to the fast semantic duration (FR-013; disabled under reduced motion by construction, 024 precedent)."
            },
            {
              "name": "--ki-video-play-bg",
              "description": "color used by the video component for the play container surface: Surface/inverse_white, the exact variable bound to the Icon_button fill (black over light, white over dark) — the control carries its own surface so glyph contrast never depends on the poster imagery (FR-008)."
            },
            {
              "name": "--ki-video-play-border-color",
              "description": "color used by the video component for the play container bevel: Outline/primary_button_top, the exact variable bound to the Icon_button stroke — the verified ki-button glass bevel."
            },
            {
              "name": "--ki-video-play-border-width",
              "description": "dimension used by the video component for the play container bevel width (MarsUI hairline stroke, ki-icon-button precedent)."
            },
            {
              "name": "--ki-video-play-fg",
              "description": "color used by the video component for the play glyph: Text/inverse_black, the counterpart of the inverse container surface (white over light, black over dark) — the glyph inherits it via currentColor; the -bg/-fg pair is swept by the contrast gate (FR-008)."
            },
            {
              "name": "--ki-video-play-icon-size",
              "description": "dimension used by the video component for the play glyph: the 28px Icon/Placeholder_xl slot measured inside the Size=md play container (the ki-icon-button xl icon size)."
            },
            {
              "name": "--ki-video-play-radius",
              "description": "dimension used by the video component for the play container shape: Radius/component/radius_xl, the exact variable bound to the Size=md Icon_button instance (14px, the ki-icon-button xl radius)."
            },
            {
              "name": "--ki-video-play-shadow",
              "description": "shadow used by the video component for the play control (MarsUI stacks Elevation/e6 on the button_wrap beneath the Component_effect/primary_default inner White/12 highlight — the measured master stack)."
            },
            {
              "name": "--ki-video-play-size",
              "description": "dimension used by the video component for the play container box: the 56px Icon_button instance of the Size=md Video (the ki-icon-button xl box; the sm variant's 40px box is the scale demo)."
            },
            {
              "name": "--ki-video-scrim-color",
              "description": "color used by the video component for the overlay scrim behind the play control: Inverse_white/alpha_6, the exact variable bound to the Play halo on both Video variants (Black/5 light, White/5 dark) — the scheme flip rides the semantic layer."
            },
            {
              "name": "--ki-video-scrim-padding",
              "description": "dimension used by the video component for the scrim clearance around the play container: Space/3xl, the exact variable bound as the Size=md Play halo padding (16px on every side)."
            },
            {
              "name": "--ki-video-scrim-radius",
              "description": "dimension used by the video component for the overlay scrim shape: Radius/component/radius_6xl, the exact variable bound to the Size=md Play halo (28px pill-cornered square)."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "KiVideo",
          "declaration": {
            "name": "KiVideo",
            "module": "dist/components/ki-video.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "ki-video",
          "declaration": {
            "name": "KiVideo",
            "module": "dist/components/ki-video.js"
          }
        }
      ]
    }
  ]
}
