{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "prompt",
  "title": "Prompt",
  "description": "MateChat Prompt",
  "files": [
    {
      "path": "src/prompt.tsx",
      "content": "import { cva, type VariantProps } from \"class-variance-authority\";\nimport clsx from \"clsx\";\nimport type * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst promptsVariants = cva(\"flex\", {\n  variants: {\n    size: {\n      xs: \"gap-2\",\n      sm: \"gap-3\",\n      default: \"gap-4\",\n      md: \"gap-4\",\n      lg: \"gap-5\",\n    },\n  },\n  defaultVariants: {\n    size: \"default\",\n  },\n});\n\nconst promptVariants = cva(\n  \"flex flex-col justify-center bg-white border border-gray-200 rounded-lg hover:border-gray-300 hover:shadow-sm transition-all duration-150 cursor-pointer\",\n  {\n    variants: {\n      size: {\n        xs: \"px-3 py-2 gap-1\",\n        sm: \"px-4 py-2.5 gap-1.5\",\n        default: \"px-4 py-3 gap-2\",\n        md: \"px-5 py-3.5 gap-2\",\n        lg: \"px-6 py-4 gap-2.5\",\n      },\n    },\n    defaultVariants: {\n      size: \"default\",\n    },\n  },\n);\n\nconst promptTitleVariants = cva(\"font-medium text-gray-900\", {\n  variants: {\n    size: {\n      xs: \"text-sm\",\n      sm: \"text-base\",\n      default: \"text-base\",\n      md: \"text-lg\",\n      lg: \"text-xl\",\n    },\n  },\n  defaultVariants: {\n    size: \"default\",\n  },\n});\n\nconst promptDescriptionVariants = cva(\"text-gray-600\", {\n  variants: {\n    size: {\n      xs: \"text-xs\",\n      sm: \"text-sm\",\n      default: \"text-sm\",\n      md: \"text-base\",\n      lg: \"text-base\",\n    },\n  },\n  defaultVariants: {\n    size: \"default\",\n  },\n});\n\nexport function Prompts({\n  className,\n  size,\n  ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof promptsVariants>) {\n  return (\n    <div\n      data-slot=\"prompts\"\n      className={twMerge(clsx(promptsVariants({ size }), className))}\n      {...props}\n    />\n  );\n}\n\nexport function Prompt({\n  className,\n  size = \"default\",\n  ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof promptVariants>) {\n  return (\n    <div\n      data-slot=\"prompt\"\n      data-size={size}\n      className={twMerge(clsx(promptVariants({ size, className })))}\n      {...props}\n    />\n  );\n}\n\nexport function PromptTitle({\n  className,\n  size,\n  ...props\n}: React.ComponentProps<\"h3\"> & VariantProps<typeof promptTitleVariants>) {\n  const computedClassName = size\n    ? twMerge(clsx(promptTitleVariants({ size, className })))\n    : twMerge(\n        clsx(\n          \"font-medium text-gray-900\",\n          \"[div[data-size='xs']_&]:text-sm\",\n          \"[div[data-size='sm']_&]:text-base\",\n          \"[div[data-size='default']_&]:text-base\",\n          \"[div[data-size='md']_&]:text-lg\",\n          \"[div[data-size='lg']_&]:text-xl\",\n          className,\n        ),\n      );\n\n  return (\n    <h3 data-slot=\"prompt-title\" className={computedClassName} {...props} />\n  );\n}\n\nexport function PromptDescription({\n  className,\n  size,\n  ...props\n}: React.ComponentProps<\"p\"> & VariantProps<typeof promptDescriptionVariants>) {\n  const computedClassName = size\n    ? twMerge(clsx(promptDescriptionVariants({ size, className })))\n    : twMerge(\n        clsx(\n          \"text-gray-600\",\n          \"[div[data-size='xs']_&]:text-xs\",\n          \"[div[data-size='sm']_&]:text-sm\",\n          \"[div[data-size='default']_&]:text-sm\",\n          \"[div[data-size='md']_&]:text-base\",\n          \"[div[data-size='lg']_&]:text-base\",\n          className,\n        ),\n      );\n\n  return (\n    <p\n      data-slot=\"prompt-description\"\n      className={computedClassName}\n      {...props}\n    />\n  );\n}\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}