{
  "type": "camera-input",
  "description": "Camera input that stores captured photos as data URLs.",
  "hasChildren": false,
  "propsSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
      "label": {
        "description": "Label text displayed above the camera input",
        "type": "string"
      },
      "param": {
        "description": "The canvas parameter name to sync with, or form field name if inside a Form component. Captured images are stored as data URL strings.",
        "type": "string"
      },
      "defaultValue": {
        "default": "",
        "type": "string"
      },
      "facingMode": {
        "default": "environment",
        "type": "string",
        "enum": [
          "user",
          "environment"
        ]
      },
      "imageFormat": {
        "default": "jpeg",
        "type": "string",
        "enum": [
          "png",
          "jpeg",
          "webp"
        ]
      },
      "quality": {
        "default": 0.92,
        "type": "number",
        "minimum": 0,
        "maximum": 1
      },
      "disabled": {
        "default": false,
        "type": "boolean"
      },
      "readOnly": {
        "default": false,
        "type": "boolean"
      },
      "startLabel": {
        "default": "Start camera",
        "type": "string"
      },
      "buttonLabel": {
        "default": "Capture photo",
        "type": "string"
      },
      "sendPhotoLabel": {
        "default": "Send photo",
        "type": "string"
      },
      "retakeLabel": {
        "default": "Retake",
        "type": "string"
      },
      "clearLabel": {
        "default": "Clear",
        "type": "string"
      },
      "errorMessage": {
        "default": "Could not access camera.",
        "type": "string"
      },
      "style": {
        "description": "Inline CSS styles as a plain CSS string (e.g., \"color: red; font-size: 16px\")",
        "type": "string"
      }
    },
    "description": "A camera input that captures a photo as a data URL string and can optionally sync with canvas parameters or a form."
  }
}
