{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://slexkit.dev/standard/slex-expression.schema.json",
  "title": "Slex Expression",
  "description": "Structural schema for SlexKit logic-bearing Markdown UI artifacts. JavaScript expression semantics are defined by slex-logic-profile.json.",
  "type": "object",
  "additionalProperties": true,
  "properties": {
    "slex": {
      "type": "string",
      "const": "0.1",
      "description": "Optional public Slex protocol marker."
    },
    "namespace": {
      "type": "string",
      "minLength": 1,
      "description": "State namespace. Bare component trees default to namespace 'default'."
    },
    "g": {
      "$ref": "#/$defs/stateObject"
    },
    "layout": {
      "$ref": "#/$defs/layoutTree",
      "description": "Component tree keyed by 'type:identifier'."
    }
  },
  "patternProperties": {
    "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
      "$ref": "#/$defs/componentNode"
    }
  },
  "$defs": {
    "componentKey": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$"
    },
    "directive": {
      "type": "string",
      "description": "$if, $for, and $key directive expressions are JavaScript expression strings."
    },
    "readPipe": {
      "type": "string",
      "description": "JavaScript expression evaluated against g, std, api, component state, and loop context.",
      "xSlexkitExpressionKind": "read"
    },
    "writePipe": {
      "type": "string",
      "description": "JavaScript statements executed with $event and the Slex expression context.",
      "xSlexkitExpressionKind": "write"
    },
    "stateObject": {
      "type": "object",
      "additionalProperties": true,
      "description": "Mutable artifact state and helper functions. Source form may contain JavaScript functions."
    },
    "layoutTree": {
      "type": "object",
      "propertyNames": {
        "$ref": "#/$defs/componentKey"
      },
      "additionalProperties": {
        "$ref": "#/$defs/componentNode"
      }
    },
    "componentNode": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "$if": {
          "$ref": "#/$defs/directive"
        },
        "$for": {
          "$ref": "#/$defs/directive"
        },
        "$key": {
          "$ref": "#/$defs/directive"
        }
      },
      "patternProperties": {
        "^\\$[A-Za-z_$][\\w$-]*$": {
          "$ref": "#/$defs/readPipe"
        },
        "^on[A-Za-z_$][\\w$-]*$": {
          "$ref": "#/$defs/writePipe"
        },
        "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
          "$ref": "#/$defs/componentNode"
        }
      }
    },
    "components": {
      "accordion": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ],
            "description": "Current expanded item value; use an array when multiple is true."
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "multiple": {
            "type": "boolean",
            "description": "Allow multiple items to be expanded at the same time.",
            "default": false
          },
          "items": {
            "type": "array",
            "description": "Panel definitions with value, label, content, and optional icon."
          },
          "items[].icon": {
            "type": "string",
            "description": "Icon name shown before an item trigger label."
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when expanded items change."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "badge": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "label": {
            "type": "string",
            "description": "Badge text."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "text": {
            "type": "string",
            "description": "Alias for label."
          },
          "$text": {
            "type": "string",
            "description": "Dynamic expression for 'text'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "content": {
            "type": "string",
            "description": "Alias for label."
          },
          "$content": {
            "type": "string",
            "description": "Dynamic expression for 'content'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the badge label."
          },
          "tone": {
            "enum": [
              "info",
              "success",
              "warning",
              "danger",
              "muted"
            ],
            "description": "Semantic tone applied to the badge.",
            "default": "info"
          },
          "variant": {
            "enum": [
              "info",
              "success",
              "warning",
              "danger",
              "muted"
            ],
            "description": "Alias for tone."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "button": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "label": {
            "type": "string",
            "description": "Visible button text and accessible name."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the label."
          },
          "iconOnly": {
            "type": "boolean",
            "description": "Show only the icon while retaining label as the accessible name.",
            "default": false
          },
          "variant": {
            "enum": [
              "primary",
              "secondary",
              "danger",
              "ghost"
            ],
            "description": "Semantic action variant.",
            "default": "primary"
          },
          "disabled": {
            "type": "boolean",
            "description": "Disable the action.",
            "default": false
          },
          "$disabled": {
            "type": "string",
            "description": "Dynamic expression for 'disabled'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "href": {
            "type": "string",
            "description": "Render the button surface as a link to this URL."
          },
          "$href": {
            "type": "string",
            "description": "Dynamic expression for 'href'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "target": {
            "type": "string",
            "description": "Link target used when href is present."
          },
          "title": {
            "type": "string",
            "description": "Tooltip and accessible-label fallback."
          },
          "$title": {
            "type": "string",
            "description": "Dynamic expression for 'title'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "selected": {
            "type": "boolean",
            "description": "Render the icon in its selected visual state."
          },
          "$selected": {
            "type": "string",
            "description": "Dynamic expression for 'selected'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "active": {
            "type": "boolean",
            "description": "Render the icon in its active visual state."
          },
          "$active": {
            "type": "string",
            "description": "Dynamic expression for 'active'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "pressed": {
            "type": "boolean",
            "description": "Expose pressed state and render the selected icon style."
          },
          "$pressed": {
            "type": "string",
            "description": "Dynamic expression for 'pressed'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "onclick": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when the button is clicked."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "callout": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "title": {
            "type": "string",
            "description": "Callout title."
          },
          "$title": {
            "type": "string",
            "description": "Dynamic expression for 'title'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "heading": {
            "type": "string",
            "description": "Alias for title."
          },
          "$heading": {
            "type": "string",
            "description": "Dynamic expression for 'heading'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Alias for title."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the title."
          },
          "text": {
            "type": "string",
            "description": "Callout body text."
          },
          "$text": {
            "type": "string",
            "description": "Dynamic expression for 'text'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "message": {
            "type": "string",
            "description": "Alias for text."
          },
          "$message": {
            "type": "string",
            "description": "Dynamic expression for 'message'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "content": {
            "type": "string",
            "description": "Alias for text."
          },
          "$content": {
            "type": "string",
            "description": "Dynamic expression for 'content'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "tone": {
            "enum": [
              "info",
              "success",
              "warning",
              "danger"
            ],
            "description": "Semantic tone for the callout.",
            "default": "info"
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "card": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "title": {
            "type": "string",
            "description": "Card title."
          },
          "$title": {
            "type": "string",
            "description": "Dynamic expression for 'title'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the title."
          },
          "tone": {
            "enum": [
              "info",
              "success",
              "warning",
              "danger",
              "muted"
            ],
            "description": "Optional semantic tone for the card surface."
          },
          "variant": {
            "enum": [
              "tool"
            ],
            "description": "Use tool for ToolHost input cards with compact chrome."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "checkbox": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "checked": {
            "type": "boolean",
            "description": "Checked state.",
            "default": false
          },
          "$checked": {
            "type": "string",
            "description": "Dynamic expression for 'checked'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Checkbox label."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the visible label."
          },
          "disabled": {
            "type": "boolean",
            "description": "Disable the checkbox.",
            "default": false
          },
          "$disabled": {
            "type": "string",
            "description": "Dynamic expression for 'disabled'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "haptic": {
            "type": "boolean",
            "description": "Enable vibration feedback on supported devices.",
            "default": true
          },
          "haptics": {
            "type": "boolean",
            "description": "Alias for haptic.",
            "default": true
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when checked state changes."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "code-block": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "code": {
            "type": "string",
            "description": "Code text content."
          },
          "$code": {
            "type": "string",
            "description": "Dynamic expression for 'code'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "source": {
            "type": "string",
            "description": "Alias for code."
          },
          "$source": {
            "type": "string",
            "description": "Dynamic expression for 'source'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "content": {
            "type": "string",
            "description": "Alias for code."
          },
          "$content": {
            "type": "string",
            "description": "Dynamic expression for 'content'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "language": {
            "type": "string",
            "description": "Language label."
          },
          "title": {
            "type": "string",
            "description": "Code block title."
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the title."
          },
          "lineNumbers": {
            "type": "boolean",
            "description": "Show line numbers.",
            "default": true
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "collapsible": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "open": {
            "type": "boolean",
            "description": "Expanded state.",
            "default": false
          },
          "$open": {
            "type": "string",
            "description": "Dynamic expression for 'open'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "trigger": {
            "type": "string",
            "description": "Trigger button text."
          },
          "$trigger": {
            "type": "string",
            "description": "Dynamic expression for 'trigger'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before trigger text."
          },
          "content": {
            "type": "string",
            "description": "Static body content."
          },
          "$content": {
            "type": "string",
            "description": "Dynamic expression for 'content'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when open state changes."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "column": {
        "type": "object",
        "additionalProperties": true,
        "properties": {},
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "divider": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "label": {
            "type": "string",
            "description": "Text shown in the divider."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the label."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "formula": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "tex": {
            "type": "string",
            "description": "KaTeX source to render."
          },
          "$tex": {
            "type": "string",
            "description": "Dynamic expression for 'tex'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "formula": {
            "type": "string",
            "description": "Alias for tex."
          },
          "$formula": {
            "type": "string",
            "description": "Dynamic expression for 'formula'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "value": {
            "type": "string",
            "description": "Alias for tex."
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "displayMode": {
            "type": "boolean",
            "description": "Render as display math when true; inline math when false.",
            "default": true
          },
          "display": {
            "type": "boolean",
            "description": "Alias for displayMode.",
            "default": true
          },
          "block": {
            "type": "boolean",
            "description": "Alias for displayMode.",
            "default": true
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "grid": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "columns": {
            "type": "number",
            "description": "Base column count.",
            "default": 1
          },
          "$columns": {
            "type": "string",
            "description": "Dynamic expression for 'columns'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "smColumns": {
            "type": "number",
            "description": "Column count at the small breakpoint."
          },
          "$smColumns": {
            "type": "string",
            "description": "Dynamic expression for 'smColumns'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "mdColumns": {
            "type": "number",
            "description": "Column count at the medium breakpoint."
          },
          "$mdColumns": {
            "type": "string",
            "description": "Dynamic expression for 'mdColumns'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "lgColumns": {
            "type": "number",
            "description": "Column count at the large breakpoint."
          },
          "$lgColumns": {
            "type": "string",
            "description": "Dynamic expression for 'lgColumns'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "xlColumns": {
            "type": "number",
            "description": "Column count at the extra-large breakpoint."
          },
          "$xlColumns": {
            "type": "string",
            "description": "Dynamic expression for 'xlColumns'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "gap": {
            "type": "string",
            "description": "Spacing between grid items."
          },
          "$gap": {
            "type": "string",
            "description": "Dynamic expression for 'gap'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "icon": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "icon": {
            "type": "string",
            "description": "Icon name resolved through the global icon manager."
          },
          "iconOnly": {
            "type": "boolean",
            "description": "Render only the icon while retaining an accessible label where supported."
          },
          "items[].icon": {
            "type": "string",
            "description": "Accordion item trigger icon."
          },
          "options[].icon": {
            "type": "string",
            "description": "Select or radio option icon."
          },
          "columns[].icon": {
            "type": "string",
            "description": "Table column header icon."
          },
          "tabs[].icon": {
            "type": "string",
            "description": "Tab trigger icon."
          },
          "tabs[].iconOnly": {
            "type": "boolean",
            "description": "Tab trigger icon-only mode."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "input": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "value": {
            "type": "string",
            "description": "Current input value."
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Input label."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "unit": {
            "type": "string",
            "description": "Trailing unit text."
          },
          "$unit": {
            "type": "string",
            "description": "Dynamic expression for 'unit'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "description": {
            "type": "string",
            "description": "Assistive description below the input."
          },
          "$description": {
            "type": "string",
            "description": "Dynamic expression for 'description'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "help": {
            "type": "string",
            "description": "Alias for description."
          },
          "$help": {
            "type": "string",
            "description": "Dynamic expression for 'help'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "hint": {
            "type": "string",
            "description": "Alias for description."
          },
          "$hint": {
            "type": "string",
            "description": "Dynamic expression for 'hint'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "error": {
            "type": "string",
            "description": "Error text shown below the input and linked with aria-describedby."
          },
          "$error": {
            "type": "string",
            "description": "Dynamic expression for 'error'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "errorMessage": {
            "type": "string",
            "description": "Alias for error."
          },
          "$errorMessage": {
            "type": "string",
            "description": "Dynamic expression for 'errorMessage'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "invalid": {
            "type": "boolean",
            "description": "Mark the input as invalid with aria-invalid and error styling.",
            "default": false
          },
          "$invalid": {
            "type": "string",
            "description": "Dynamic expression for 'invalid'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "placeholder": {
            "type": "string",
            "description": "Placeholder text for empty values."
          },
          "type": {
            "type": "string",
            "description": "Input value kind; use engineering for parsed engineering values.",
            "default": "text"
          },
          "disabled": {
            "type": "boolean",
            "description": "Disable editing.",
            "default": false
          },
          "$disabled": {
            "type": "string",
            "description": "Dynamic expression for 'disabled'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "readonly": {
            "type": "boolean",
            "description": "Make the input read-only.",
            "default": false
          },
          "$readonly": {
            "type": "string",
            "description": "Dynamic expression for 'readonly'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "readOnly": {
            "type": "boolean",
            "description": "Alias for readonly.",
            "default": false
          },
          "$readOnly": {
            "type": "string",
            "description": "Dynamic expression for 'readOnly'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "required": {
            "type": "boolean",
            "description": "Mark the input as required.",
            "default": false
          },
          "$required": {
            "type": "string",
            "description": "Dynamic expression for 'required'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "id": {
            "type": "string",
            "description": "Native input id; defaults to a stable id derived from the component name."
          },
          "name": {
            "type": "string",
            "description": "Native input name attribute."
          },
          "min": {
            "type": [
              "string",
              "number"
            ],
            "description": "Minimum value used by numeric input controls."
          },
          "$min": {
            "type": "string",
            "description": "Dynamic expression for 'min'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "max": {
            "type": [
              "string",
              "number"
            ],
            "description": "Maximum value used by numeric input controls."
          },
          "$max": {
            "type": "string",
            "description": "Dynamic expression for 'max'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "step": {
            "type": [
              "string",
              "number"
            ],
            "description": "Step size used by numeric input controls."
          },
          "$step": {
            "type": "string",
            "description": "Dynamic expression for 'step'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when the value changes."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "link": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "href": {
            "type": "string",
            "description": "Target URL."
          },
          "text": {
            "type": "string",
            "description": "Visible link text."
          },
          "$text": {
            "type": "string",
            "description": "Dynamic expression for 'text'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Alias for text."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "content": {
            "type": "string",
            "description": "Alias for text."
          },
          "$content": {
            "type": "string",
            "description": "Dynamic expression for 'content'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before link text."
          },
          "target": {
            "type": "string",
            "description": "Native link target attribute."
          },
          "variant": {
            "enum": [
              "default",
              "muted"
            ],
            "description": "Link visual variant.",
            "default": "default"
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "playground": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "source": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "string"
              }
            ],
            "description": "SlexKit or Markdown source to preview."
          },
          "sourceType": {
            "enum": [
              "slex",
              "markdown",
              "auto-markdown"
            ],
            "description": "Source parser mode.",
            "default": "slex"
          },
          "title": {
            "type": "string",
            "description": "Playground title."
          },
          "previewAlign": {
            "enum": [
              "center",
              "start"
            ],
            "description": "Vertical preview alignment in render mode.",
            "default": "center"
          },
          "alignPreview": {
            "enum": [
              "center",
              "start"
            ],
            "description": "Alias for previewAlign."
          },
          "previewPlacement": {
            "enum": [
              "center",
              "start"
            ],
            "description": "Alias for previewAlign."
          },
          "previewMinHeight": {
            "type": "string",
            "description": "Minimum preview area height."
          },
          "previewMaxWidth": {
            "type": "string",
            "description": "Maximum preview content width."
          },
          "themeToggle": {
            "type": "boolean",
            "description": "Show the theme toggle action.",
            "default": false
          },
          "showThemeToggle": {
            "type": "boolean",
            "description": "Alias for themeToggle.",
            "default": false
          },
          "enableThemeToggle": {
            "type": "boolean",
            "description": "Alias for themeToggle.",
            "default": false
          },
          "themeLabel": {
            "type": "string",
            "description": "Accessible label for the theme toggle action."
          },
          "themeToggleLabel": {
            "type": "string",
            "description": "Alias for themeLabel."
          },
          "sourceTypeLabel": {
            "type": "string",
            "description": "Accessible label for the source type selector."
          },
          "copyLabel": {
            "type": "string",
            "description": "Accessible label for the copy source action."
          },
          "openWebLabel": {
            "type": "string",
            "description": "Accessible label for opening the source in the standalone playground."
          },
          "webUrl": {
            "type": "string",
            "description": "Standalone playground URL used by the open action."
          },
          "playgroundUrl": {
            "type": "string",
            "description": "Alias for webUrl."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "progress": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "Progress percentage from 0 to 100.",
            "default": 0
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Progress label."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the label."
          },
          "indeterminate": {
            "type": "boolean",
            "description": "Render an indeterminate progress state without aria-valuenow.",
            "default": false
          },
          "$indeterminate": {
            "type": "string",
            "description": "Dynamic expression for 'indeterminate'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "radio-group": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "value": {
            "type": "string",
            "description": "Current selected value."
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Group label."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the group label."
          },
          "options": {
            "type": "array",
            "description": "Options with label, value, and optional icon."
          },
          "options[].icon": {
            "type": "string",
            "description": "Icon name shown before a single option label."
          },
          "options[].description": {
            "type": "string",
            "description": "Secondary text shown below the option label."
          },
          "disabled": {
            "type": "boolean",
            "description": "Disable every radio option in the group.",
            "default": false
          },
          "$disabled": {
            "type": "string",
            "description": "Dynamic expression for 'disabled'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "orientation": {
            "enum": [
              "vertical",
              "horizontal"
            ],
            "description": "Radio option layout direction.",
            "default": "vertical"
          },
          "variant": {
            "enum": [
              "list"
            ],
            "description": "Use list for full-row option surfaces in ToolHost decision cards."
          },
          "haptic": {
            "type": "boolean",
            "description": "Enable vibration feedback on supported devices.",
            "default": true
          },
          "haptics": {
            "type": "boolean",
            "description": "Alias for haptic.",
            "default": true
          },
          "name": {
            "type": "string",
            "description": "Native radio group name shared by options."
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when selection changes."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "row": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "justify": {
            "enum": [
              "start",
              "center",
              "end",
              "space-between",
              "space-around"
            ],
            "description": "Main-axis distribution.",
            "default": "start"
          },
          "align": {
            "enum": [
              "start",
              "center",
              "end",
              "baseline",
              "stretch"
            ],
            "description": "Cross-axis alignment.",
            "default": "center"
          },
          "gap": {
            "type": "string",
            "description": "Spacing between children."
          },
          "$gap": {
            "type": "string",
            "description": "Dynamic expression for 'gap'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "variant": {
            "enum": [
              "actions"
            ],
            "description": "Use actions for compact ToolHost action rows."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "section": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "title": {
            "type": "string",
            "description": "Section title."
          },
          "$title": {
            "type": "string",
            "description": "Dynamic expression for 'title'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the title."
          },
          "eyebrow": {
            "type": "string",
            "description": "Small label above the title."
          },
          "$eyebrow": {
            "type": "string",
            "description": "Dynamic expression for 'eyebrow'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "subtitle": {
            "type": "string",
            "description": "Subtitle text below the title."
          },
          "$subtitle": {
            "type": "string",
            "description": "Dynamic expression for 'subtitle'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "actionLabel": {
            "type": "string",
            "description": "Optional action link label."
          },
          "$actionLabel": {
            "type": "string",
            "description": "Dynamic expression for 'actionLabel'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "actionHref": {
            "type": "string",
            "description": "Optional action link target."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "select": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "label": {
            "type": "string",
            "description": "Select label."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the top label."
          },
          "value": {
            "type": "string",
            "description": "Current selected value."
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "options": {
            "type": "array",
            "description": "Options with label, value, and optional icon."
          },
          "options[].icon": {
            "type": "string",
            "description": "Icon name shown before an option label."
          },
          "placeholder": {
            "type": "string",
            "description": "Placeholder shown when no value is selected."
          },
          "disabled": {
            "type": "boolean",
            "description": "Disable the select trigger and native select.",
            "default": false
          },
          "$disabled": {
            "type": "string",
            "description": "Dynamic expression for 'disabled'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "required": {
            "type": "boolean",
            "description": "Require a non-placeholder value in the native select.",
            "default": false
          },
          "$required": {
            "type": "string",
            "description": "Dynamic expression for 'required'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "variant": {
            "enum": [
              "default",
              "toolbar"
            ],
            "description": "Select surface variant.",
            "default": "default"
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when selection changes."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "slider": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "label": {
            "type": "string",
            "description": "Slider label."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the label."
          },
          "value": {
            "type": "number",
            "description": "Current numeric value.",
            "default": 0
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "min": {
            "type": "number",
            "description": "Minimum value.",
            "default": 0
          },
          "$min": {
            "type": "string",
            "description": "Dynamic expression for 'min'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "max": {
            "type": "number",
            "description": "Maximum value.",
            "default": 100
          },
          "$max": {
            "type": "string",
            "description": "Dynamic expression for 'max'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "step": {
            "type": "number",
            "description": "Step interval.",
            "default": 1
          },
          "$step": {
            "type": "string",
            "description": "Dynamic expression for 'step'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "unit": {
            "type": "string",
            "description": "Unit shown after the value."
          },
          "$unit": {
            "type": "string",
            "description": "Dynamic expression for 'unit'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "disabled": {
            "type": "boolean",
            "description": "Disable the range input.",
            "default": false
          },
          "$disabled": {
            "type": "string",
            "description": "Dynamic expression for 'disabled'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "orientation": {
            "enum": [
              "horizontal",
              "vertical"
            ],
            "description": "Slider orientation metadata used for styling.",
            "default": "horizontal"
          },
          "haptic": {
            "type": "boolean",
            "description": "Enable vibration feedback on supported devices.",
            "default": true
          },
          "haptics": {
            "type": "boolean",
            "description": "Alias for haptic.",
            "default": true
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when the value changes."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "stat": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "label": {
            "type": "string",
            "description": "Metric label."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the label."
          },
          "value": {
            "type": [
              "string",
              "number"
            ],
            "description": "Metric value."
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "unit": {
            "type": "string",
            "description": "Unit shown after the value."
          },
          "$unit": {
            "type": "string",
            "description": "Dynamic expression for 'unit'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "tone": {
            "enum": [
              "info",
              "success",
              "warning",
              "danger",
              "muted"
            ],
            "description": "Optional semantic tone."
          },
          "animateInitial": {
            "type": "boolean",
            "description": "Animate the initial rendered value.",
            "default": false
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "switch": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Enabled state.",
            "default": false
          },
          "$enabled": {
            "type": "string",
            "description": "Dynamic expression for 'enabled'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Switch label."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown before the visible label."
          },
          "disabled": {
            "type": "boolean",
            "description": "Disable the switch.",
            "default": false
          },
          "$disabled": {
            "type": "string",
            "description": "Dynamic expression for 'disabled'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "haptic": {
            "type": "boolean",
            "description": "Enable vibration feedback on supported devices.",
            "default": true
          },
          "haptics": {
            "type": "boolean",
            "description": "Alias for haptic.",
            "default": true
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when enabled state changes."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "table": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "columns": {
            "type": "array",
            "description": "Column definitions with key, label, and optional icon."
          },
          "columns[].icon": {
            "type": "string",
            "description": "Icon name shown before a column label."
          },
          "rows": {
            "type": "array",
            "description": "Row data objects keyed by column key."
          },
          "items": {
            "type": "array",
            "description": "Alias for rows."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "tabs": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "value": {
            "type": "string",
            "description": "Current active tab value."
          },
          "$value": {
            "type": "string",
            "description": "Dynamic expression for 'value'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "tabs": {
            "type": "array",
            "description": "Tab definitions with value, label, content, icon, and iconOnly."
          },
          "tabs[].icon": {
            "type": "string",
            "description": "Icon name shown before a tab trigger label."
          },
          "tabs[].iconOnly": {
            "type": "boolean",
            "description": "Show only the tab icon while retaining label as accessible text."
          },
          "orientation": {
            "enum": [
              "horizontal",
              "vertical"
            ],
            "description": "Tab list orientation.",
            "default": "horizontal"
          },
          "onchange": {
            "type": "string",
            "xSlexkitExpressionKind": "write",
            "description": "Write expression invoked when the active tab changes."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "text": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "text": {
            "type": "string",
            "description": "Displayed text."
          },
          "$text": {
            "type": "string",
            "description": "Dynamic expression for 'text'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "content": {
            "type": "string",
            "description": "Alias for text."
          },
          "$content": {
            "type": "string",
            "description": "Dynamic expression for 'content'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Alias for text."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "variant": {
            "enum": [
              "default",
              "muted"
            ],
            "description": "Text visual variant.",
            "default": "default"
          },
          "color": {
            "type": "string",
            "description": "Optional CSS color for controlled previews."
          },
          "$color": {
            "type": "string",
            "description": "Dynamic expression for 'color'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "size": {
            "type": [
              "string",
              "number"
            ],
            "description": "Optional font size. Numbers are treated as px."
          },
          "$size": {
            "type": "string",
            "description": "Dynamic expression for 'size'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "class": {
            "type": "string",
            "description": "Additional host-controlled CSS class."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      },
      "toast": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "title": {
            "type": "string",
            "description": "Toast title."
          },
          "$title": {
            "type": "string",
            "description": "Dynamic expression for 'title'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "heading": {
            "type": "string",
            "description": "Alias for title."
          },
          "$heading": {
            "type": "string",
            "description": "Dynamic expression for 'heading'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "label": {
            "type": "string",
            "description": "Alias for title."
          },
          "$label": {
            "type": "string",
            "description": "Dynamic expression for 'label'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "icon": {
            "type": "string",
            "description": "Icon name shown at the left of the toast."
          },
          "description": {
            "type": "string",
            "description": "Toast body text."
          },
          "$description": {
            "type": "string",
            "description": "Dynamic expression for 'description'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "text": {
            "type": "string",
            "description": "Alias for description."
          },
          "$text": {
            "type": "string",
            "description": "Dynamic expression for 'text'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "message": {
            "type": "string",
            "description": "Alias for description."
          },
          "$message": {
            "type": "string",
            "description": "Dynamic expression for 'message'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "content": {
            "type": "string",
            "description": "Alias for description."
          },
          "$content": {
            "type": "string",
            "description": "Dynamic expression for 'content'. Evaluated with the Slex logic profile.",
            "xSlexkitExpressionKind": "read"
          },
          "type": {
            "enum": [
              "info",
              "success",
              "warning",
              "danger"
            ],
            "description": "Semantic notification type.",
            "default": "info"
          },
          "tone": {
            "enum": [
              "info",
              "success",
              "warning",
              "danger"
            ],
            "description": "Alias for type.",
            "default": "info"
          },
          "duration": {
            "type": "number",
            "description": "Auto-hide delay in milliseconds."
          },
          "dismissable": {
            "type": "boolean",
            "description": "Show a close button.",
            "default": true
          },
          "dismissible": {
            "type": "boolean",
            "description": "Alias for dismissable.",
            "default": true
          },
          "closeLabel": {
            "type": "string",
            "description": "Accessible close button label.",
            "default": "Close notification"
          },
          "closeAriaLabel": {
            "type": "string",
            "description": "Alias for closeLabel."
          }
        },
        "required": [],
        "patternProperties": {
          "^[a-z][a-z0-9-]*:[A-Za-z0-9_$-]*$": {
            "$ref": "#/$defs/componentNode"
          },
          "^on[A-Za-z_$][\\w$-]*$": {
            "type": "string",
            "description": "Write-pipe event handler expression.",
            "xSlexkitExpressionKind": "write"
          }
        }
      }
    }
  },
  "xSlexkit": {
    "packageVersion": "0.4.0",
    "schemaVersion": "2026-06",
    "protocolVersion": "0.1",
    "logicProfileVersion": "0.1",
    "sourceFormat": "JavaScript object literal embedded in explicit Markdown ```slex fences"
  }
}
