{
  "type": "text-area",
  "description": "Multi-line text input with optional param sync.",
  "hasChildren": false,
  "propsSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
      "label": {
        "description": "Label text displayed above the text area",
        "type": "string"
      },
      "param": {
        "description": "The canvas parameter name to sync with, or form field name if inside a Form component. If omitted, works as a regular text area.",
        "type": "string"
      },
      "placeholder": {
        "default": "Enter text...",
        "type": "string"
      },
      "defaultValue": {
        "default": "",
        "type": "string"
      },
      "submitMode": {
        "default": "type",
        "type": "string",
        "enum": [
          "type",
          "focus",
          "submit"
        ],
        "description": "Controls when the text area value is sent: type sends while typing, focus sends on blur, and submit sends only from the inline submit button or Enter key."
      },
      "debounceMs": {
        "default": 300,
        "type": "integer",
        "minimum": 0,
        "maximum": 9007199254740991
      },
      "rows": {
        "default": 4,
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      },
      "maxLength": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "disabled": {
        "default": false,
        "type": "boolean"
      },
      "readOnly": {
        "default": false,
        "type": "boolean"
      },
      "style": {
        "description": "Inline CSS styles as a plain CSS string (e.g., \"color: red; font-size: 16px\")",
        "type": "string"
      }
    },
    "description": "A multi-line text input that can optionally sync with canvas parameters. If param is provided, syncs with that parameter or form; otherwise works as a regular text area."
  }
}
