{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "input",
  "title": "TIS Input",
  "author": "TIS Experience Engineering",
  "description": "Input React com primitive Base UI e wrapper anatômico público do Input Text do DS TIS.",
  "dependencies": [
    "@base-ui/react@1.6.0",
    "clsx@2.1.1",
    "tailwind-merge@3.6.0",
    "ds-tis@github:tis-experience/ds-tis#dd4c906943847cb7664a72a0c7637a378b39adcc"
  ],
  "files": [
    {
      "path": "registry/tis/input.tsx",
      "content": "import * as React from \"react\"\nimport { Input as InputPrimitive } from \"@base-ui/react/input\"\n\nimport { cn } from \"./tis-utils\"\n\ntype InputSize = \"sm\" | \"md\" | \"lg\"\n\ntype InputProps = Omit<InputPrimitive.Props, \"className\" | \"size\"> & {\n  className?: string\n  wrapperClassName?: string\n  size?: InputSize\n  filled?: boolean\n  leadingIcon?: React.ReactNode\n  trailingIcon?: React.ReactNode\n}\n\nfunction Input({\n  className,\n  wrapperClassName,\n  size = \"md\",\n  filled = false,\n  leadingIcon,\n  trailingIcon,\n  disabled,\n  readOnly,\n  \"aria-invalid\": ariaInvalid,\n  ...props\n}: InputProps) {\n  const invalid = ariaInvalid === true || ariaInvalid === \"true\"\n\n  return (\n    <div\n      data-slot=\"input-root\"\n      className={cn(\n        \"ds-input\",\n        `ds-input--${size}`,\n        filled && \"ds-input--filled\",\n        invalid && \"ds-input--error\",\n        disabled && \"ds-input--disabled\",\n        readOnly && \"ds-input--readonly\",\n        wrapperClassName,\n      )}\n    >\n      {leadingIcon && (\n        <span aria-hidden=\"true\" data-slot=\"input-leading-icon\" className=\"ds-input__icon\">\n          {leadingIcon}\n        </span>\n      )}\n      <InputPrimitive\n        data-slot=\"input\"\n        className={cn(\"ds-input__field\", className)}\n        aria-invalid={ariaInvalid}\n        disabled={disabled}\n        readOnly={readOnly}\n        {...props}\n      />\n      {trailingIcon && (\n        <span aria-hidden=\"true\" data-slot=\"input-trailing-icon\" className=\"ds-input__icon\">\n          {trailingIcon}\n        </span>\n      )}\n    </div>\n  )\n}\n\nexport { Input, type InputProps, type InputSize }\n",
      "type": "registry:ui",
      "target": "@ui/input.tsx"
    },
    {
      "path": "registry/tis/tis-utils.ts",
      "content": "import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n",
      "type": "registry:lib",
      "target": "@ui/tis-utils.ts"
    }
  ],
  "css": {
    "@import \"ds-tis/css\"": {}
  },
  "meta": {
    "provider": "Base UI",
    "providerRole": "output-provider",
    "status": "beta",
    "wave": "forms"
  },
  "docs": "Componha com Field para label, helper e erro. Mantenha @import \"ds-tis/css\" como o primeiro import do CSS global.",
  "type": "registry:ui"
}