Universal form adapter for React - one API for React Hook Form, Formik, and TanStack Form
npm install @samithahansaka/formless


All-in-one package for Formless - Universal form adapter for React.
| Bundle Size | Minified | Gzipped |
| ----------- | -------- | ------- |
| ESM | 1.05 KB | ~0.5 KB |
This is the recommended way to install Formless. It includes all adapters and utilities in a single package.
``bash
npm install @samithahansaka/formless
Quick Start
`tsx
import { z } from 'zod';
import {
useUniversalForm,
Field,
rhfAdapter, // or formikAdapter, tanstackAdapter
zodBridge,
} from '@samithahansaka/formless';const schema = zodBridge(
z.object({
name: z.string().min(1, 'Name is required'),
email: z.string().email('Invalid email'),
})
);
function ContactForm() {
const form = useUniversalForm({
schema,
adapter: rhfAdapter(),
defaultValues: { name: '', email: '' },
});
return (
);
}
`What's Included
This package re-exports everything from:
-
@samithahansaka/formless-core - Core types and utilities
- @samithahansaka/formless-react - React hooks and components
- @samithahansaka/formless-react-hook-form - React Hook Form adapter
- @samithahansaka/formless-formik - Formik adapter
- @samithahansaka/formless-tanstack-form - TanStack Form adapter
- @samithahansaka/formless-zod - Zod schema bridgeAvailable Exports
$3
-
useUniversalForm - Main form hook
- useField - Individual field hook
- useFieldArray - Dynamic field arrays
- useWatch - Watch form values$3
-
Form - Form wrapper component
- Field - Field component
- FieldArray - Field array component
- FormProvider - Context provider$3
-
rhfAdapter - React Hook Form adapter
- formikAdapter - Formik adapter
- tanstackAdapter - TanStack Form adapter
- useRHFAdapter - React Hook Form hook adapter
- useFormikAdapter - Formik hook adapter
- useTanStackAdapter - TanStack Form hook adapter$3
-
zodBridge - Zod schema bridge$3
- Path utilities:
getByPath, setByPath, parsePath, etc.
- Error utilities: normalizeFieldError, mergeErrors, etc.
- Comparison utilities: deepEqual, shallowEqual`, etc.For full documentation, visit the main repository.
MIT