@marlon-chaviano/field-kit
Version:
A collection of reusable and accessible form components built with React, TailwindCSS, and fully integrated with React Hook Form...
119 lines (85 loc) • 3.05 kB
Markdown
# 🧰 field-kit
**Field Kit** es una librería de componentes de formularios accesibles y reutilizables para **React**, basada en **React Hook Form** , **shadcn** y **TailwindCSS**. Su objetivo es acelerar el desarrollo de formularios modernos, validables y accesibles desde el primer momento.
## ✨ Características
- Integración directa con [`react-hook-form`](https://react-hook-form.com/)
- Componentes de shadcn.ui estilizados con TailwindCSS y listos para producción
- Accesibilidad mejorada con soporte para ARIA
- Preparado para validaciones dinámicas
- Fácil de extender con nuevos componentes
## 🚀 Instalación
```bash
npm install @marlon-chaviano/field-kit"
```
o
```bash
pnpm install @marlon-chaviano/field-kit"
```
También asegúrate de tener instaladas las **peer dependencies** requeridas en tu proyecto:
```bash
npm install react react-dom react-hook-form tailwindcss
```
o
```bash
npm install react react-dom react-hook-form tailwindcss
```
## 🧪 Uso Básico
### 📥 `InputField`
Este es el componente base para campos de entrada de texto, ya integrado con `react-hook-form`.
#### 📌 Ejemplo de uso
```tsx
import { InputField } from "field-kit";
import { useForm, FormProvider } from "react-hook-form";
function MyForm() {
const methods = useForm();
const onSubmit = (data: any) => {
console.log(data);
};
return (
<FormProvider {...methods}>
<form
onSubmit={methods.handleSubmit(onSubmit)}
className="space-y-4"
>
<InputField
name="email"
label="Email Address"
type="email"
rules={{ required: "This field is required" }}
placeholder="Enter your email"
/>
<button
type="submit"
className="px-4 py-2 bg-blue-500 text-white rounded"
>
Submit
</button>
</form>
</FormProvider>
);
}
```
#### 🔧 Props del componente
| Prop | Tipo | Descripción |
| ---------------- | --------------------------------------- | ------------------------------------------------- |
| `name` | `string` | Nombre del campo (requerido para React Hook Form) |
| `label` | `string` _(opcional)_ | Etiqueta del campo |
| `rules` | `RegisterOptions` _(opcional)_ | Reglas de validación |
| `errorClassName` | `string` | Tailwind or css className for error message |
| `...props` | `InputHTMLAttributes<HTMLInputElement>` | Any other valid `<input />` props |
## 📦 Roadmap
Próximamente se incluirán más componentes como:
- `SelectField` (con múltiples opciones)
- `DatePickerField`
- `TextAreaField`
- `CheckboxField`
- `SwitchField`
- Y más...
## 🤝 Contribuciones
¡Contribuciones, ideas y sugerencias son bienvenidas! Siéntete libre de abrir un `issue` o enviar un `pull request`.
## 📄 Licencia
ISC