Forms
A small toolbox on top of Angular Signal Forms. Signal Forms owns the model, the field tree, and validation; this fills the ergonomic gaps around them.
@mmstack/formsnpm
npm install @mmstack/forms Signal Forms give you form(model, schema), which builds a reactive field tree from a model signal, and a [formField] directive that binds a control to one field. They own the model, the tree, and validation. What they leave thin is the ergonomics around them: attaching typed metadata to a field, reusing a field type, knowing what changed. This library fills those gaps and nothing else.
It is not a forms framework. It layers on the stable @angular/forms/signals API, so you keep the native model and rules and add only the pieces you need. It requires @angular/core and @angular/forms at v22 or newer.
#Three pieces
| You want to | Reach for |
|---|---|
| Attach typed metadata (a label, options) to a field | Field metadata |
| Define a reusable field type once and apply it everywhere | Composition |
| Know what changed from a baseline, for diffs and guards | Change tracking |
Each piece is independent. You can add field metadata without touching composition, or track changes on a plain Signal Form.