Start here
- Index: ./index
- Concepts: ./concepts
- Config: ./reference/config
- API (TypeDoc): ./api/README
- Source entry: ../../src/index.ts
Invariants
- Prefer public exports from
src/index.ts. Do not deep import internal files. - React Hook Form v7 is foundational; re-exports
useFormContext,UseFormReturnare available. - Zod integration is optional; only use when
zodand@hookform/resolversare installed. - No CLI, no HTTP endpoints, no Prisma. Do not invent env vars or routes.
- Docs source lives in
docs/content/; API docs are generated intodocs/content/api/.
Public surface
- Components:
Form,FormField,ZodForm, fields (CheckboxField,InputField,RadioGroupField,SelectField,SliderField,SwitchField,TextareaField,DateField,FileField,FontPickerField,ConditionalField,FieldArrayField,DynamicSectionField),SubmitButton,FormStatus - Providers:
ConfigProvider,FormProvider - Hooks:
useFormHelper,useHeroForm,useEnhancedFormState,useDebouncedValidation,useInferredForm, plususeFormContext,UseFormReturn - Builders and validation helpers:
builders/index,builders/validation-helpers, and named helpers likecreateEmailSchema,createRequiredSchema,crossFieldValidation - Utils:
applyServerErrors,validation,performance,testing - Types:
types(seesrc/types.tsand API docs)
Common tasks
- Quickstart with ZodForm: ./guides/quickstart
- Build dynamic forms (conditional fields, arrays): ./guides/dynamic-forms
- Handle validation and server errors: ./guides/error-handling
Don’ts
- Don’t invent configuration keys or env vars.
- Don’t deep import into
src/**—use public exports fromsrc/index.ts. - Don’t assume HTTP/REST/GraphQL—none exist here.
Regenerating API docs
- From repo root:
npm run docs:api(outputs todocs/content/api/)
LLM Context
This file provides essential context for AI assistants working with the Hero Hook Form codebase.
Start Here
- Main Entry: docs/content/index.mdx - Package overview and quick start
- Core Concepts: docs/content/concepts.mdx - Architecture and mental models
- API Reference: docs/content/api/ - Complete API documentation
- Source Code: src/index.ts - Public exports and main entry point
Invariants
- Form State: All forms use React Hook Form’s
UseFormReturninterface - Type Safety: All field configurations are fully typed with TypeScript
- HeroUI Integration: All components use HeroUI’s design system and props
- Validation: Zod schemas are required for
ZodFormcomponents - Performance: Components are memoized with
React.memofor optimal performance - Accessibility: All form fields include proper ARIA attributes and keyboard navigation
Public Surface
Core Components
Form- Basic form component with field configurationZodForm- Form component with Zod schema validationFormField- Individual field componentFormStatus- Form state display component
Field Components
InputField,TextareaField,SelectField- Text input fieldsCheckboxField,SwitchField,RadioGroupField- Boolean/choice fieldsDateField,FileField,SliderField- Specialized input fieldsFontPickerField- Font selection fieldConditionalField,FieldArrayField,DynamicSectionField- Dynamic fields
Hooks
useHeroForm- Enhanced form hook with defaultsuseFormHelper- Form state management hookuseEnhancedFormState- Advanced form state trackinguseDebouncedValidation- Debounced field validation
Form Builders
createBasicFormBuilder- Simple form buildercreateAdvancedBuilder- Advanced form builder with all featurescreateTypeInferredBuilder- Type-inferred form builderFormFieldHelpers- Helper functions for field creationCommonFields- Pre-built field collections
Utilities
applyServerErrors- Server-side error handlingcreateZodFormConfig- Zod form configuration helper- Validation utilities:
createEmailSchema,createPasswordSchema, etc.
Common Tasks
- Basic Form: Use
ZodFormwithFormFieldHelpersfor simple forms - Dynamic Forms: Use
ConditionalFieldandFieldArrayFieldfor conditional/repeating fields - Type-Inferred Forms: Use
defineInferredFormfor automatic schema generation - Custom Validation: Use Zod schemas with cross-field validation helpers
Don’ts
- Don’t use
isDisabledprop - usedisabledfor consistency with HeroUI - Don’t deep import from internal modules - use public exports from
src/index.ts - Don’t bypass form validation - always use proper schema validation
- Don’t forget to wrap forms in
HeroHookFormProviderfor styling defaults - Don’t use
rulesproperty inZodFormFieldConfig- validation is handled by Zod schemas
Last updated on