{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "admin-input",
  "title": "Admin input",
  "description": "The control of one record form field.",
  "files": [
    {
      "path": "registry/admin-input.tsx",
      "content": "import { type InputProps } from \"@aotter/mantle-admin/app\";\n\n/**\n * Surface: browser (the record page; never an MCP Procedure action form).\n * Slots: input:<schema>.<field>\n * Server authorization still applies to reads and writes; replacing this component grants nothing.\n */\n\n/** The control of one text field. Narrow `InputProps` to `InputProps<string>` once your generated types name the field. */\nexport function AdminInput({ value, onChange, readOnly, property }: InputProps) {\n  const maxLength = typeof property[\"maxLength\"] === \"number\" ? property[\"maxLength\"] : undefined;\n  return (\n    <input\n      type=\"text\"\n      className=\"w-full min-w-0 rounded-md border bg-background px-3 py-2 text-sm\"\n      value={typeof value === \"string\" ? value : \"\"}\n      maxLength={maxLength}\n      readOnly={readOnly}\n      onChange={(event) => onChange(event.target.value)}\n    />\n  );\n}\n",
      "type": "registry:component",
      "target": "~/src/admin/admin-input.tsx"
    }
  ],
  "meta": {
    "surface": "browser",
    "slots": [
      "input:<schema>.<field>"
    ]
  },
  "type": "registry:component"
}