Signal fields
SignalDateField and SignalDateRangeField from ngx-mat-hijri-adapter/signals implement FormValueControl for the [formField] directive from @angular/forms/signals.
Booking form
The same booking form, bound to a signal form.
ngx-mat-hijri-adapter/signalsState and errors
Disabled, touched, and error state come from the field. Datepicker errors such as matDatepickerParse and matEndDateInvalid are reported to the field as errors of that kind.
errorMessages maps error kinds to messages, because errors is set by [formField]. Without an entry, the field shows the error's own message. Datepicker errors are shown first.
Bounds
Use minDate and maxDate for picker bounds. The min() and max() signal form rules work on numbers and JavaScript Date values, not CalendarDate, and these fields do not read them.
The other inputs, the value calendar, and the toggle are described in Form fields.