35853 Commits

Author SHA1 Message Date
kirjs 8fd585cc0b release: cut the v21.0.7 release v21.0.7 2026-01-07 16:45:50 -05:00
Leon Senft ff531752b0 refactor(forms): remove customError()
Remove the `customError` function and `CustomValidationError` type.

These were made obsolete by support for returning plain object literals
as custom errors.

This also catches few `field` properties that were missed in the
renaming to `fieldTree`.

(cherry picked from commit 46dbd18566)
2026-01-07 15:07:35 -05:00
arturovt 5e9e09aee0 fix(router): handle errors from view transition updateCallbackDone promise
Firefox-specific workaround: Firefox 144+ creates the `updateCallbackDone` promise
internally during error handling (e.g., duplicate view-transition-name), even before
the property is accessed. This can cause unhandled promise rejections to appear in
error tracking tools like Rollbar/Sentry. We must attach catch handlers to all three
promises immediately to prevent these unhandled rejections.
See: https://bugzilla.mozilla.org/show_bug.cgi?id=1999336 (if applicable)
Spec: https://drafts.csswg.org/css-view-transitions-1/#dom-viewtransition-updatecallbackdone

(cherry picked from commit 9e043decaf)
2026-01-07 15:06:02 -05:00
Kristiyan Kostadinov fbb37d8388 refactor(core): remove unused instruction parameter
The `thisArg` in pure functions isn't used so we can drop it. We still need to keep it on the underlying implementation, because pipe instructions rely on it.

(cherry picked from commit 4dc5ae54a9)
2026-01-07 15:05:24 -05:00
SkyZeroZx c3adc5a707 docs(docs-infra): Fix combobox dialog styles for dark theme
Fixes combobox dialog styles to ensure correct text color and contrast in dark theme.
This improves readability and visual consistency when using the docs in dark mode.

(cherry picked from commit 090484c853)
2026-01-07 14:19:35 -05:00
SkyZeroZx 8eb0cd51de docs: enhance programmatic rendering guide by covering ngComponentOutlet options
(cherry picked from commit f9e9fc4ffe)
2026-01-07 14:18:37 -05:00
Shuaib Hasan Akib 0b26947802 docs: standardize component decorator placeholders in markdown
Updates `@Component({ ... })` to `@Component({/*...*/})` across
documentation examples for consistency and clearer formatting.

(cherry picked from commit d129d201c1)
2026-01-07 14:17:42 -05:00
SkyZeroZx 35fe58f7da docs(vscode-extension): update angular.io links to angular.dev in messages
(cherry picked from commit 8c8c5b24a1)
2026-01-07 14:12:19 -05:00
SkyZeroZx 8aa77557f1 docs: update angular.io links to angular.dev in comments, TSDoc, and warnings
(cherry picked from commit b2f417585a)
2026-01-07 14:12:18 -05:00
Andrew Scott 41cd4a6af8 fix(router): Fix RouterLink href not updating with queryParamsHandling
There was a bug introduced in #60875. While RouterLink doesn't
necessarily depend on Router state, its link can change when navigations
cause the `ActivatedRoute` paths to change. It is difficult to determine
which segments the link depends on. Luckily, the commit had flawed
logic:

```
!this.queryParamsHandling && !dependsOnRouterState(this.options?.defaultQueryParamsHandling);
```

The subscription gets created whenever `queryParamsHandling` was not
defined, or it was non-default. This is pretty much all scenarios since
nobody is likely to set it explicitly to the default value. In addition,
the `click` handler recomputes the tree because `urlTree` is a getter
that does the computation.

This commit effectively rolls back #60875

(cherry picked from commit bcef77d950)
2026-01-07 14:08:17 -05:00
SkyZeroZx ae1dc16bb0 fix(forms): clean up abort listener after timeout
Removes the abort event listener once the debounce timeout completes.

This avoids lingering listeners, prevents potential memory leaks, and ensures
the abort logic runs at most once.

(cherry picked from commit e7d99f02cb)
2026-01-07 14:07:28 -05:00
Kristiyan Kostadinov 63b1cdcf70 fix(compiler): produce accurate span for typeof and void expressions
Fixes that the `typeof` and `void` expressions were starting their spans from the expression start, rather than the keyword.

Fixes #66174.

(cherry picked from commit 3a56c1367f)
2026-01-07 14:04:09 -05:00
SkyZeroZx c3f3ebec8f docs: remove Component suffix from examples in DI & Drag and Drop
Updates documentation examples to remove the `Component` suffix, aligning them with the current Angular Style Guide.

(cherry picked from commit 0d6ac92ccb)
2026-01-07 13:59:20 -05:00
Angular Robot 61370dc8c8 docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-01-07 13:34:27 -05:00
Kristiyan Kostadinov 7c74674eb0 fix(core): avoid leaking view data in animations
The animations code currently tracks which views have running leave animations by adding them to a `Set`. This can leak memory if we don't clean something up on time.

These changes switch to tracking the views by their ID which doesn't risk retaining the view.

Fixes #66255.

(cherry picked from commit 80b0fbba1f)
2026-01-07 12:39:04 -05:00
Matthieu Riegler 7738eb94cb docs(docs-infra): Use category for signal forms guides
(cherry picked from commit b17f93b6d1)
2026-01-07 09:35:22 -05:00
hawkgs c1e9627f6d docs(core): fix Ivy view data docs tables
The current formatting prevents the tables to be rendered making it hard to read them.

(cherry picked from commit 51ed487fae)
2026-01-07 09:22:47 -05:00
SkyZeroZx d699eef2ca docs: add docs for transform property in built-in loaders
(cherry picked from commit 3dfdb71d65)
2026-01-07 09:18:03 -05:00
Paweł Kawula 0ff2d5af2d docs: fixed incorrect link in migrating-to-vitest.md
provided correct link to section about vitest fake timer

(cherry picked from commit f811c6c69d)
2026-01-07 09:10:33 -05:00
Andrew Scott 4161161320 Revert "fix(router): Ensure createUrlTree does not reuse segments of input"
This reverts commit 39efb62c0f.

(cherry picked from commit 174d2da29a)
2026-01-07 00:29:22 +00:00
Miles Malerba e3fba182f9 feat(forms): add [formField] directive
This will replace the `[field]` directive, since `[field]` is a very
generic name for signal forms to commandeer

refactor(forms): hook up `formField` directive in compiler

Hooks up the `formField` direcive to get the same treatment as the
`field` directive in the compiler.

apply updated formatting

(cherry picked from commit 2d85ae5811)
2026-01-06 17:21:09 -05:00
Angular Robot defc9246a5 build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-06 15:19:53 -05:00
Leon Senft af1d4acb9d refactor(forms): bind native properties on interop controls
The framework will now bind all field state properties to their
corresponding native properties (if any) on interop form controls (those
using `ControlValueAccessor`), excluding those handled explicitly by
`ControlValueAccessor` such as `disabled`.

(cherry picked from commit 82a2de201f)
2026-01-06 13:12:21 -05:00
Leon Senft 0e8b9d8cde refactor(forms): bind field properties to all directives on interop controls
The framework will now bind the field state properties to all matching
directive inputs on form controls using Reactive Forms'
`ControlValueAccessor`.

(cherry picked from commit 15bddbdcda)
2026-01-06 13:12:21 -05:00
Leon Senft ff37a13913 refactor(forms): bind field properties to all directives on custom controls
The framework will now bind the field state properties to all matching
directive inputs on custom form controls.

(cherry picked from commit 0c8f15d546)
2026-01-06 13:12:21 -05:00
Leon Senft a4ba820d36 refactor(forms): bind field properties to all directives on native controls
Since the `Field` directive manages binding `FieldState` properties to
the underlying form control automatically, the type checker prohibits
explicit bindings to the same properties to avoid conflicts. This proved
problematic in cases where developers wanted to bind these properties to
the inputs of other directives on form controls. Now the framework will
bind the field state properties to all matching directive inputs on
native controls.

Fix #65617

(cherry picked from commit c149f47ef6)
2026-01-06 13:12:21 -05:00
Andrew Scott 92c162e1b9 fix(router): Ensure createUrlTree does not reuse segments of input
Mutating the `UrlTree` that is returned by `createUrlTree` can cause the
input, which might even be an active route, to be mutated. This ensures
the `UrlSegment`s are recreated and do not mutate the input.

fixes #54624

(cherry picked from commit 39efb62c0f)
2026-01-06 13:11:58 -05:00
Kristiyan Kostadinov 8e808740c9 fix(compiler): better types for a few expression AST nodes
We had `any` types for `LiteralArray.expressions`, `Chain.expressions`, `BindingPipe.args`, `LiteralPrimitive.value` and `LiteralMap.values`. These changes add proper types to them.

(cherry picked from commit 10da2f9029)
2026-01-06 12:16:32 -05:00
Alan Agius f9c29572d2 fix(core): sanitize sensitive attributes on SVG script elements
This commit updates the DOM security schema and sanitization logic to properly recognize and sanitize `href` and `xlink:href` attributes on SVG `<script>` elements.
2026-01-06 12:16:03 -05:00
Shuaib Hasan Akib 45bfd824bf docs(forms): add documentation links to Signal Forms API
Add @see JSDoc tags to Signal Forms API functions and classes to link to the essentials guide and detailed documentation pages. This improves discoverability of Signal Forms documentation from the API reference.

(cherry picked from commit b93d5ec27a)
2026-01-06 10:34:49 -05:00
Angular Robot 9d33cf3793 build: lock file maintenance
See associated pull request for more information.
2026-01-06 10:20:35 -05:00
Angular Robot 4917befe59 build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-06 10:19:00 -05:00
Matthieu Riegler a119427834 docs: rewrite testing docs
Those rewrites focus on using Vitest instead of jasmine, drop usages of `fakeAsync`, present modern testing strategy that rely on `whenStable` more than explicit calls to `detectChanges`.

fixes #42748, #48510, #64962, #65987, #66029,  #66150

(cherry picked from commit 71cde39ff0)
2026-01-05 19:38:27 -05:00
Angular Robot b16c2f59ee build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-05 19:28:19 -05:00
Shuaib Hasan Akib e21076d068 docs(forms): fix duplicate validator reference titles in AbstractControl
The removeValidators and hasValidator methods both had identical "Reference to a ValidatorFn" section titles, causing duplicate entries in the API documentation table of contents.

(cherry picked from commit 456ca35906)
2026-01-05 19:26:34 -05:00
SkyZeroZx 8f26a52aa8 refactor(core): introduce tree-shakeable runtime error codes for NgModule handling and ViewContainerRef errors
Adds new tree-shakeable runtime error codes to improve error reporting for
NgModule resolution issues (duplicate or missing IDs) and invalid ViewContainerRef
operations involving destroyed views.

(cherry picked from commit 1532be9d00)
2026-01-05 16:52:27 -05:00
Matthieu Riegler 1748c8984c docs(docs-infra): Add package filter to the API list
This commit also introduces the usage of signal forms on adev

(cherry picked from commit 15308149db)
2026-01-05 15:21:37 -05:00
Angular Robot 834bae1331 docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-01-05 14:43:08 -05:00
Shuaib Hasan Akib 9494b56cc3 docs(docs-infra): sync heading colors between docs and API pages
Aligns documentation heading colors across docs and API pages to ensure
visual consistency and a cohesive reading experience.

(cherry picked from commit e6631f0007)
2026-01-05 12:37:02 -05:00
SkyZeroZx cc067c2a0d feat(docs-infra): Extracts aliases from doc entries
Implements a mechanism to extract alias names from a directive's selector.

(cherry picked from commit ed7bfb3c88)
2026-01-05 12:33:19 -05:00
SkyZeroZx 6cfbc736b4 docs: update tsDoc code examples to use TypeScript syntax highlighting
(cherry picked from commit b735c45974)
2026-01-05 12:31:47 -05:00
Angular Robot 7e9dc56186 build: lock file maintenance
See associated pull request for more information.
2026-01-05 12:21:40 -05:00
SkyZeroZx c1f22a3fa4 docs: Add form control state management and event options
(cherry picked from commit b1a0d1d8e2)
2026-01-05 12:16:14 -05:00
SkyZeroZx e65c3cabe5 docs(docs-infra): add external link styles to API reference documentation
Adds the missing icon external link styling to the API reference documentation.

(cherry picked from commit c1d72af10d)
2026-01-05 12:14:34 -05:00
SkyZeroZx 06109f5ad3 docs: add @see links to API docs for better discoverability
(cherry picked from commit fa430bffb0)
2026-01-05 12:12:28 -05:00
SkyZeroZx 5e6a9ba2af refactor(router): Simplifies unsubscribe logic
Uses optional chaining to simplify unsubscribe handling.
Also improving tree-shaking by limiting injector names to route paths using `ngDevMode`

(cherry picked from commit 712d8f41e8)
2026-01-05 12:08:14 -05:00
Angular Robot b2d6d36458 build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-05 12:07:00 -05:00
SkyZeroZx 73a3fd5bf7 docs: add section on converting writable signals to readonly
(cherry picked from commit a9283ca93a)
2026-01-05 12:03:15 -05:00
Shuaib Hasan Akib 4227a4915e docs: fix incorrect Input import in example
Update the documentation example to import input instead of Input,
ensuring the code reflects the signal-based API and current Angular
recommendations.

(cherry picked from commit bcaa001cac)
2026-01-05 12:02:20 -05:00
Shuaib Hasan Akib aac05ff1d6 fix(docs-infra): stop auto-linking "state" and "group" to APIs
Prevents common words used in code examples from being incorrectly
linked to API references.

Fixes: #66292
(cherry picked from commit 8358e548ce)
2026-01-05 12:01:55 -05:00