{
  "type": "number-input",
  "description": "Number 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 number input",
        "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 number input.",
        "type": "string"
      },
      "placeholder": {
        "default": "Enter number...",
        "type": "string"
      },
      "defaultValue": {
        "default": 0,
        "type": "number"
      },
      "min": {
        "type": "number"
      },
      "max": {
        "type": "number"
      },
      "step": {
        "default": 1,
        "type": "number",
        "exclusiveMinimum": 0
      },
      "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 numeric input that can optionally sync valid number values with canvas parameters. If param is provided, syncs with that parameter or form; otherwise works as a regular number input."
  }
}
