Skip to content

Commit bc4b864

Browse files
committed
docs(forms): update stale statements in the signal forms docs
- overview: Signal Forms are stable, so drop the suggestion to use reactive forms for production stability, and require Angular v22 like the comparison guide does. - validation: readonly fields also skip validation, like hidden and disabled fields. - Restore links to the field state management guide that were commented out until the guide was published, and remove the leftover TODO comments above live pill rows. - signal forms tutorial: drop the note that Signal Forms is experimental. - PACKAGE.md: debouncing is supported through the `debounce()` rule. - Use the `{when}` form of `disabled()` in JSDoc examples instead of the deprecated function overload.
1 parent 76492d0 commit bc4b864

8 files changed

Lines changed: 8 additions & 14 deletions

File tree

‎adev/src/content/guide/forms/signals/field-state-management.md‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -876,7 +876,6 @@ export class PasswordInput implements FormValueControl<string> {
876876

877877
This guide covered validation and availability status handling, interaction tracking and field state propagation. Related guides explore other aspects of Signal Forms:
878878

879-
<!-- TODO: UNCOMMENT WHEN THE GUIDES ARE AVAILABLE -->
880879
<docs-pill-row>
881880
<docs-pill href="guide/forms/signals/models" title="Form models" />
882881
<docs-pill href="guide/forms/signals/validation" title="Validation" />

‎adev/src/content/guide/forms/signals/models.md‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,7 @@ Field state provides reactive signals for each field's value, making it suitable
193193

194194
TIP: Field state includes many more signals beyond `value()`, such as validation state (e.g., valid, invalid, errors), interaction tracking (e.g., touched, dirty), and visibility (e.g., hidden, disabled).
195195

196-
<!-- TODO: UNCOMMENT BELOW WHEN GUIDE IS AVAILABLE -->
197-
<!-- See the [Field State Management guide](guide/forms/signals/field-state-management) for complete coverage. -->
196+
See the [Field State Management guide](guide/forms/signals/field-state-management) for complete coverage.
198197

199198
## Updating form models programmatically
200199

@@ -425,7 +424,6 @@ Array items containing objects automatically receive tracking identities, which
425424

426425
This guide covered creating models and updating values. Related guides explore other aspects of Signal Forms:
427426

428-
<!-- TODO: UNCOMMENT WHEN THE GUIDES ARE AVAILABLE -->
429427
<docs-pill-row>
430428
<docs-pill href="guide/forms/signals/field-state-management" title="Field state management" />
431429
<docs-pill href="guide/forms/signals/validation" title="Validation" />

‎adev/src/content/guide/forms/signals/overview.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ Signal Forms address these challenges by:
1515
- **Providing type safety** - Supports fully type safe schemas & bindings between your UI controls and data model
1616
- **Centralizing validation logic** - Define all validation rules in one place using a validation schema
1717

18-
Signal Forms work best in new applications built with signals. If you're working with an existing application that uses reactive forms, or if you need production stability guarantees, reactive forms remain a solid choice.
18+
Signal Forms work best in new applications built with signals. If you're working with an existing application that uses reactive forms, reactive forms remain a solid choice.
1919

2020
NOTE: If you're coming from template or reactive forms, you may be interested in the [comparison guide](guide/forms/signals/comparison).
2121

2222
## Prerequisites
2323

2424
Signal Forms require:
2525

26-
- Angular v21 or higher
26+
- Angular v22 or higher
2727

2828
## Setup
2929

‎adev/src/content/guide/forms/signals/validation.md‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Validation in Signal Forms follows this pattern:
3838
3. **Error propagation** - Validation errors are exposed through field state signals
3939
4. **Reactive updates** - UI automatically updates when validation state changes
4040

41-
Validation runs on every value change for interactive fields. Hidden and disabled fields don't run validation - their validation rules are skipped until the field becomes interactive again.
41+
Validation runs on every value change for interactive fields. Hidden, disabled, and readonly fields don't run validation - their validation rules are skipped until the field becomes interactive again.
4242

4343
### Validation timing
4444

@@ -360,9 +360,7 @@ export class OrderComponent {
360360

361361
When validation rules fail, they produce error objects that describe what went wrong. Understanding error structure helps you provide clear feedback to users.
362362

363-
<!-- TODO: Uncomment when field state management guide is published
364-
365-
NOTE: This section covers the errors that validation rules produce. For displaying and using validation errors in your UI, see the [Field State Management guide](guide/forms/signals/field-state-management). -->
363+
NOTE: This section covers the errors that validation rules produce. For displaying and using validation errors in your UI, see the [Field State Management guide](guide/forms/signals/field-state-management).
366364

367365
### Error structure
368366

‎adev/src/content/tutorials/signal-forms/steps/6-next-steps/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ Ready to learn more? Here are recommended next steps:
2929

3030
## Keep learning
3131

32-
IMPORTANT: Signal Forms is experimental, so check the [official documentation](guide/forms/signals/overview) for updates to the API.
32+
Check the [official documentation](guide/forms/signals/overview) for the full Signal Forms API and more in-depth guides.
3333

3434
Happy coding!

‎packages/forms/signals/PACKAGE.md‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,5 @@ forms that keeps signals at its core, and interoperates with the existing `@angu
66

77
## Not yet supported
88

9-
- Debouncing validation
109
- Dynamic objects
1110
- Tuples

‎packages/forms/signals/src/api/types.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -835,7 +835,7 @@ export type Schema<in TModel> = {
835835
* ```typescript
836836
* const userFormSchema: SchemaFn<User> = (p) => {
837837
* required(p.name);
838-
* disabled(p.email, ({valueOf}) => valueOf(p.name) === '');
838+
* disabled(p.email, {when: ({valueOf}) => valueOf(p.name) === ''});
839839
* };
840840
*
841841
* const f = form(userModel, userFormSchema, {injector});

‎packages/forms/signals/src/field/resolution.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export function getBoundPathDepth() {
2626
*
2727
* ```ts
2828
* const s = schema(p => {
29-
* disabled(p.next, ({valueOf}) => valueOf(p.data));
29+
* disabled(p.next, {when: ({valueOf}) => valueOf(p.data)});
3030
* apply(p.next, s);
3131
* });
3232
* ```

0 commit comments

Comments
 (0)