# @taylordb/forms-ui
Type: ui (React 18+)

## Overview

React components and client-side runtime for TaylorDB conversational forms. Depends on `@taylordb/forms-core` and `zustand`. Peer: `react`, `react-dom`.

Validation comes from `form.sharedSteps`: `defineForm` in forms-core attaches
built-in defaults when no step/field `validate` is present, and custom
`validate` overrides those defaults. Handlers do not validate. For the exact
default list, read `../core/src/types.ts` (`defaultValidateByType`).

## Docs

- Overview & mental model: ./docs/overview.md
- Form props & step components (includes **UI locale**): ./docs/form-api.md
- Built-in inputs: ./docs/inputs.md
- Vite build-time form config check: ./docs/vite-plugin-form-check.md
- Composite fields & shared schema: ./docs/schema-composite.md
- Autosave (fetch, custom adapter, storage, status): ./docs/autosave.md
- Themes, hooks, exports, value cheat sheet: ./docs/hooks-theming-exports.md
- Recipes, HTTP contract, pitfalls, source map: ./docs/recipes-agents.md
- Stable data-testid selectors for tests and agents: ./docs/test-ids.md
- E2E test helpers (`formsTestIds`, `formSelectors`): import `@taylordb/forms-ui/testing`

## Also in package

- README.md — quick start
- example.md — larger examples
