@ng-forge/dynamic-forms-primeng
PrimeNG field components for @ng-forge/dynamic-forms.

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.
Compatibility
| 22.x | 1.x |
| 21.x | 0.x (experimental) |
Versioned in lockstep with @ng-forge/dynamic-forms. The 0.x line targets Angular 21 (experimental Signal Forms). Each release pins its Angular requirement via peerDependencies; npm warns on a mismatch.
PrimeNG has not yet published a release that officially supports Angular 22. This package's test suite passes against PrimeNG 21.x running on Angular 22.
Installation
npm install @ng-forge/dynamic-forms @ng-forge/dynamic-forms-primeng primeng @primeuix/themes primeicons
Setup
import { providePrimeNG } from 'primeng/config';
import Aura from '@primeuix/themes/aura';
import { provideDynamicForm } from '@ng-forge/dynamic-forms';
import { withPrimeNGFields } from '@ng-forge/dynamic-forms-primeng';
export const appConfig: ApplicationConfig = {
providers: [
providePrimeNG({
theme: {
preset: Aura,
},
}),
provideDynamicForm(...withPrimeNGFields()),
],
};
@import 'primeicons/primeicons.css';
Usage
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 ContactFormComponent {
config = {
fields: [
{ key: 'email', type: 'input', value: '', label: 'Email', required: true, email: true },
{ type: 'submit', key: 'submit', label: 'Submit', props: { severity: 'primary' } },
],
} as const satisfies FormConfig;
onSubmit(value: InferFormValue<typeof this.config.fields>) {
console.log('Form submitted:', value);
}
}
Global Configuration
provideDynamicForm(
...withPrimeNGFields({
variant: 'filled',
size: 'large',
severity: 'primary',
}),
);
Field Types
Input, Textarea, Select, Checkbox, Toggle, Radio, Multi-Checkbox, Datepicker, Slider, Button, Submit, Next, Previous
Addons
prime-input ships first-class prefix / suffix addon slots accepting the PrimeNG-specific prime-icon / prime-button kinds plus the universal text / template / component kinds. withPrimeNGFields() auto-registers them — no extra setup needed.
See Addons / Overview, Presets and Actions, and Custom Types for the full surface (slots, kinds, presets, actionRef, reactive hidden / disabled, custom kind registration).
Documentation
Changelog
See GitHub Releases.
Contributing
Contributions are welcome! Please read our Contributing Guide.
License
MIT © ng-forge