{
  "type": "sql-table",
  "description": "Table rendered from a DuckDB SQL query.",
  "hasChildren": false,
  "propsSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
      "sql": {
        "type": "string",
        "description": "DuckDB SQL query with {{udf_name}} and $param_name placeholders. Example: SELECT * FROM {{my_udf}} LIMIT 100"
      },
      "title": {
        "description": "Table title displayed above",
        "type": "string"
      },
      "sortable": {
        "default": true,
        "description": "Allow sorting rows by clicking column headers",
        "type": "boolean"
      },
      "filterable": {
        "default": false,
        "description": "Show filter inputs below column headers",
        "type": "boolean"
      },
      "maxRows": {
        "default": 500,
        "description": "Safety limit appended when the SQL query has no LIMIT clause. Defaults to 500.",
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "style": {
        "description": "Inline CSS styles as a plain CSS string (e.g., \"padding: 8px; height: 400px\")",
        "type": "string"
      },
      "aiBuilderMode": {
        "default": false,
        "description": "Whether the AI chat is active. When true, shows the AI chat panel. AI actions require authentication.",
        "type": "boolean"
      },
      "aiPanel": {
        "default": "right",
        "description": "Side the AI chat panel is docked on when aiBuilderMode is true.",
        "type": "string",
        "enum": [
          "left",
          "right"
        ]
      },
      "showEditor": {
        "default": false,
        "description": "Show a collapsible editor panel for inspecting and editing the current value.",
        "type": "boolean"
      },
      "editorPosition": {
        "default": "bottom",
        "description": "Place the editor panel above or below the component.",
        "type": "string",
        "enum": [
          "top",
          "bottom"
        ]
      },
      "editorCollapsed": {
        "default": false,
        "description": "Whether the editor panel starts collapsed.",
        "type": "boolean"
      },
      "editorHeight": {
        "description": "Optional initial editor height in pixels. If omitted, height auto-fits the current content.",
        "type": "number"
      }
    },
    "required": [
      "sql"
    ],
    "description": "Renders the results of a DuckDB SQL query in a table similar to the UDF node Data Table. Supports {{udf_name}} placeholders and $param_name canvas parameters. Optional AI chat can author the SQL for you."
  }
}
