
Product
Microsoft Teams Notifications Are Now Available in Socket
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.
@ng-forge/dynamic-forms
Advanced tools
Type-safe, signal-powered dynamic forms for Angular. Build complex forms from configuration with full TypeScript inference.
Core library for building type-safe, dynamic Angular forms with signal forms integration.
Stability: This library is built on Angular Signal Forms, which is stable as of Angular v22. Check the compatibility matrix below for supported Angular versions.
| Angular | @ng-forge/dynamic-forms |
|---|---|
| 22.x | 1.x |
| 21.x | 0.x (experimental) |
Signal Forms are stable as of Angular 22. The 0.x line targets Angular 21, where Signal Forms were still experimental and could change in patch releases. Each release pins its Angular requirement via peerDependencies; npm warns on a mismatch.
| Entrypoint | Audience | Stability |
|---|---|---|
@ng-forge/dynamic-forms | Form consumers | Public API, governed by semver |
@ng-forge/dynamic-forms/schema | Form consumers | Public API, governed by semver |
@ng-forge/dynamic-forms/integration | UI adapter authors | Public API, governed by semver |
@ng-forge/dynamic-forms/testing | Component authors | Public API, governed by semver |
@ng-forge/dynamic-forms/internal | None (build-time) | Unsupported, no semver guarantee |
The /schema entrypoint is a supported, semver-governed surface for using Standard Schema validation libraries (Zod, Valibot, ArkType) with dynamic forms via standardSchema().
The /testing entrypoint provides test fixtures (createNgForgeFieldFixture, createNgForgeActionFixture, provideTestValidationMessages) for unit testing custom field and action components. The same symbols are still re-exported from /integration for backwards compatibility, but those aliases are deprecated and will be removed in the next major.
The /internal entrypoint is an unsupported build surface with no semver guarantee. It is published only because shared DI tokens, services, and config types must keep a single compiled identity across the public bundles. Its contents may change or be removed in any release, including patch releases.
Import only from @ng-forge/dynamic-forms and @ng-forge/dynamic-forms/schema (form consumers), @ng-forge/dynamic-forms/integration (UI adapter authors), or @ng-forge/dynamic-forms/testing (component tests).
npm install @ng-forge/dynamic-forms @ng-forge/dynamic-forms-material
// app.config.ts
import { provideDynamicForm } from '@ng-forge/dynamic-forms';
import { withMaterialFields } from '@ng-forge/dynamic-forms-material';
export const appConfig: ApplicationConfig = {
providers: [provideDynamicForm(...withMaterialFields())],
};
// component.ts
import { DynamicForm, type FormConfig, type InferFormValue } from '@ng-forge/dynamic-forms';
@Component({
imports: [DynamicForm],
template: `<form [dynamic-form]="config" (submitted)="onSubmit($event)"></form>`,
})
export class UserFormComponent {
config = {
fields: [
{ key: 'email', type: 'input', value: '', label: 'Email', required: true, email: true },
{ key: 'password', type: 'input', value: '', label: 'Password', required: true, minLength: 8, props: { type: 'password' } },
{ type: 'submit', key: 'submit', label: 'Sign In' },
],
} as const satisfies FormConfig;
onSubmit(value: InferFormValue<typeof this.config.fields>) {
console.log('Form submitted:', value); // TypeScript infers: { email: string, password: string }
}
}
InferFormValuerequired, email, minLength) and custom validatorsThis core library requires a UI integration. Choose one:
| Package | UI Library |
|---|---|
| @ng-forge/dynamic-forms-material | Angular Material |
| @ng-forge/dynamic-forms-bootstrap | Bootstrap 5 |
| @ng-forge/dynamic-forms-primeng | PrimeNG |
| @ng-forge/dynamic-forms-ionic | Ionic |
Or create your own.
See GitHub Releases.
Contributions are welcome! Please read our Contributing Guide.
MIT © ng-forge
FAQs
Type-safe, signal-powered dynamic forms for Angular. Build complex forms from configuration with full TypeScript inference.
The npm package @ng-forge/dynamic-forms receives a total of 552 weekly downloads. As such, @ng-forge/dynamic-forms popularity was classified as not popular.
We found that @ng-forge/dynamic-forms demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.

Security News
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.

Security News
Socket CTO Ahmad Nassri joins AppSec leaders at Black Hat to discuss active malware, package manager risks, and software supply chain defense.