Resources
Changelog
Release notes for the @nestledjs form packages. The three packages — @nestledjs/forms-core, @nestledjs/forms, and @nestledjs/forms-native — are versioned together.
0.8.0
First release since 0.7.8 (April 2026). This is a breaking release — the headline change is that Apollo/GraphQL is no longer bundled, and a couple of field imports moved to subpaths. Most apps upgrade with a few small changes; see Migration below.
Breaking changes
Apollo is no longer bundled
The main @nestledjs/forms bundle no longer imports @apollo/client. Search selects now fetch options through a pluggable adapter, so apps without GraphQL pay nothing for it (bundle dropped from ~414 KB to ~114 KB). To keep the Apollo-powered fields, wrap your app in <ApolloSearchProvider> from @nestledjs/forms/apollo, inside your existing <ApolloProvider>. See Apollo integration.
- Apollo is opt-in via an adapter. Use
<ApolloSearchProvider>from@nestledjs/forms/apollo, or provide your own client (urql, TanStack Query, plainfetch) via<SearchQueryProvider>from@nestledjs/forms-core. - Phone field moved to a subpath — import it from
@nestledjs/forms/phone. - Required-only fields now enforce validation. A field marked
requiredwith no other rules now blocks submit until filled. - Themed validation errors on native /
noValidateforms — error display routes through the theme, so custom themes control the error UI. - Native submit pipeline change —
@nestledjs/forms-nativedrives submit through a dedicated submit context.
New features
- Localization via the
stringsprop onForm/NativeForm. Override any user-facing string per form; untouched keys keep their English defaults. See Localization. FormFieldClass.multiSelect(...)factory for multi-select fields.loadOptionsasync search selects — load options from REST, tRPC, orfetch, no GraphQL required. See Async search selects.
Fixes & hardening
- Markdown rendering hardened against XSS.
- Timezone bugs fixed in the date/time helpers.
- Eliminated a double initial fetch in the search-select base.
- Accessibility fixes across field error states.
submitTransformdefault handling and resolver required-enforcement fixes.
Migration from 0.7.x
- If you use Apollo search selects, add
<ApolloSearchProvider>(from@nestledjs/forms/apollo) inside your<ApolloProvider>. For a non-Apollo GraphQL/REST client, wire<SearchQueryProvider>instead. - Update phone-field imports to
@nestledjs/forms/phone. - Re-test any forms that use required-only fields — they now validate.
- Re-check custom error styling on native /
noValidateforms.