Commit Graph

36030 Commits

Author SHA1 Message Date
Jessica Janiuk 6ad2ef6bd8 release: cut the v21.1.0-rc.0 release v21.1.0-rc.0 2026-01-08 12:50:38 -08:00
Jessica Janiuk 3b8c4fc136 docs: release notes for the v21.0.8 release 2026-01-08 12:44:14 -08:00
Jessica Janiuk a2b9429992 Revert "feat(router): add trailingSlash config option"
This reverts commit 12fccc5e99.
2026-01-08 12:20:03 -08:00
Andrew Scott 86dc1283e8 fix(core): handle cancelled traversals in fake navigation
Update fake navigation implementation to correctly handle traversals that are cancelled (e.g. by a precommit handler).
Ensure prospective index is calculated correctly so that subsequent traversals target the correct entry.
Add regression test for cancelled traversals.
2026-01-08 11:27:37 -08:00
omar-almasry11 ad49d489ae fix(docs-infra): improve dark mode button hover contrast for WCAG compliance
The .docs-primary-btn hover state in dark mode had a contrast ratio of 2.18:1,
failing WCAG 2.1 SC 1.4.3. This change reuses the existing
--hot-pink-to-electric-violet-radial-gradient to achieve 4.5:1+ contrast.
2026-01-08 11:21:23 -08:00
Angular Robot 50ded69afb build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-08 11:17:03 -08:00
zakaria-bali bd5997cfeb docs(forms): make onSubmit method async for form submission
Change onSubmit method to be asynchronous since we are using await inside it
2026-01-08 10:03:23 -08:00
lyutails 8fad6155b2 docs: fix typo in effect.md 2026-01-08 10:02:51 -08:00
aparziale 71149ef57a docs(docs-infra): Fix toggle button in dark mode
Fix visibility toggle button in dark mode

Fix #66049
2026-01-08 09:07:56 -08:00
Angular Robot adabdcd173 build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-08 08:43:27 -08:00
Angular Robot 7d3cf91b1e build: update all non-major dependencies
See associated pull request for more information.
2026-01-08 08:41:30 -08:00
Shuaib Hasan Akib f727f8e655 docs: fix broken anchor link for Angular versioning section
Updates the release documentation link to point to the correct `#angular-versioning` anchor so readers are directed to the intended
2026-01-08 08:35:30 -08:00
Matthieu Riegler 8bc688b56f docs: add release schedule 2026-01-08 08:34:47 -08:00
Andrew Scott 12fccc5e99 feat(router): add trailingSlash config option
This commit introduces a highly requested `trailingSlash` configuration option to the Angular Router, allowing developers to control how trailing slashes are handled in their applications. The options are:
- 'always': Enforces a trailing slash on all URLs.
- 'never': Removes trailing slashes from all URLs (default).
- 'preserve': Respects the presence or absence of a trailing slash as defined in the UrlTree.
2026-01-08 08:26:37 -08:00
Matthieu Riegler d100e691d8 refactor(core): extend tests for empty cases.
follow-up of #66372 to extend a bit our runtime test coverage for empty cases
2026-01-08 08:24:53 -08:00
Andrew Scott 7003e8d241 feat(router): Publish Router's integration with platform Navigation API as experimental
This publishes the work that was done to integrate with the Navigation
API as an experimental router feature. Browser support is limited and in
active development. There are also known bugs in the browser implementations
and only Chromium browsers supported deferred URL updates with the
`precommitHandler`. Relates to #53321, which I would likely not mark as
completed until this is at least in dev preview, which likely won't
happen until it is widely available and potentially delayed until
`precommitHandler` is widely available as well.

The final form of this api might not even be a "router feature" in the end, but instead be
something similar to what other frameworks have to provide different
platform integrations (e.g. `provideNavigationRouter`). That would
support omitting the history-based integration from the bundle when only
the navigation integration is used. Alternatively, the current
`provideRouter` could require one of `withHistory` or `withPlatformNavigation`.
2026-01-07 16:16:06 -08:00
Matthieu Riegler 0ad3adc7c6 fix(compiler): Support empty cases
Before this commit empty @cases ended up being interpreted as consecutive cases.
2026-01-07 15:47:59 -08:00
cexbrayat bb0dc8c4e0 refactor(core): typo in stability debugging warning message
untility -> utility
2026-01-07 14:44:06 -08:00
Jaime Burgos 5c75d29fb4 refactor(core): Improve tree-shakable RuntimeError error for INVALID_FIELD_DIRECTIVE_HOST
Improves the tree-shakable runtime error handling for `INVALID_FIELD_DIRECTIVE_HOST`.
2026-01-07 14:32:25 -08:00
Andrew Scott 50674f8c28 fix(vscode-extension): convert enum member kind in completions correctly
This converts enum member kinds to the correct completion kind for displa in the completions popup
2026-01-07 14:30:05 -08:00
Jan Martin 4f785f4ab1 refactor(devtools): make release script compatible with type stripping
When running this script with node directly, it requires explicit markers
for type-only imports to work.
2026-01-07 14:28:17 -08:00
Jessica Janiuk 30e9c62bdf fix(core): fix memory leak with event replay
This ensures event replay does not hold on to elements after an application has been destroyed.

fixes: #59261
2026-01-07 14:27:44 -08:00
kirjs af4e521d64 docs: release notes for the v20.3.16 release 2026-01-07 17:20:01 -05:00
kirjs f8db6ad3b1 docs: release notes for the v19.2.18 release 2026-01-07 17:14:07 -05:00
kirjs 414b647897 docs: release notes for the v21.0.7 release 2026-01-07 16:48:40 -05:00
Jan Martin 2c9328639f release: bump Angular DevTools version to 1.7.0 2026-01-07 13:28:29 -08:00
Matthieu Riegler 18810d8a15 build: update lock file maintenance
superseeds #66229

This also removes the dagre-d3-es patch as it was merged upstream (tbo47/dagre-es/pull/51)
2026-01-07 15:53:37 -05:00
Leon Senft 46dbd18566 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`.
2026-01-07 15:07:30 -05:00
arturovt 9e043decaf 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
2026-01-07 15:05:59 -05:00
Kristiyan Kostadinov 4dc5ae54a9 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.
2026-01-07 15:05:20 -05:00
SkyZeroZx 090484c853 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.
2026-01-07 14:19:32 -05:00
SkyZeroZx f9e9fc4ffe docs: enhance programmatic rendering guide by covering ngComponentOutlet options 2026-01-07 14:18:33 -05:00
Shuaib Hasan Akib d129d201c1 docs: standardize component decorator placeholders in markdown
Updates `@Component({ ... })` to `@Component({/*...*/})` across
documentation examples for consistency and clearer formatting.
2026-01-07 14:17:38 -05:00
SkyZeroZx 8c8c5b24a1 docs(vscode-extension): update angular.io links to angular.dev in messages 2026-01-07 14:12:15 -05:00
SkyZeroZx b2f417585a docs: update angular.io links to angular.dev in comments, TSDoc, and warnings 2026-01-07 14:12:15 -05:00
Andrew Scott bcef77d950 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
2026-01-07 14:08:13 -05:00
SkyZeroZx e7d99f02cb 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.
2026-01-07 14:07:25 -05:00
Kristiyan Kostadinov 3a56c1367f 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.
2026-01-07 14:04:05 -05:00
SkyZeroZx 0d6ac92ccb 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.
2026-01-07 13:59:17 -05:00
AleksanderBodurri 241bdeb698 feat(devtools): create an info snackbar when a user logs a property
Previously there is no feedback when clicking this button in Angular DevTools itself, which can produce some confusion if the user does not have the browser console open as well, or if they accidentally turned on some filtering in the browser console.

Now Angular Devtools uses mat snack bar to inform the user that the task was successful
2026-01-07 13:40:45 -05:00
Angular Robot a6d7ee0bb4 build: update dependency ng-packagr to v21.1.0-rc.0
See associated pull request for more information.
2026-01-07 13:35:44 -05:00
Angular Robot c03e78dfbf docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-01-07 13:34:54 -05:00
Kristiyan Kostadinov 80b0fbba1f 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.
2026-01-07 12:39:00 -05:00
Kristiyan Kostadinov a0dfa5fa86 feat(core): support rest arguments in function calls
Updates the template syntax to support rest arguments in function calls. This can be handy for functions with a variable number of arguments.
2026-01-07 12:37:52 -05:00
Kristiyan Kostadinov 6e18fa8bc9 feat(core): support spread elements in array literals
Expands the template syntax to support spread elements inside arrays. This can be handy for some bindings.
2026-01-07 12:37:52 -05:00
Kristiyan Kostadinov 19ca3b66a3 refactor(compiler): add spread elements to expression AST
Updates the expression AST to support spread elements that will be used for arrays and function calls.
2026-01-07 12:37:52 -05:00
Kristiyan Kostadinov e9c3932e0e refactor(compiler): add spread elements to the output AST
Adds spread elements to the output AST which can be used in arrays and function calls.
2026-01-07 12:37:52 -05:00
Kristiyan Kostadinov 63b0ad7fa5 refactor(compiler-cli): account for spread elements in translator
Adds the ability to generate spread elements in the linker.
2026-01-07 12:37:52 -05:00
Kristiyan Kostadinov e407280ab5 feat(core): support spread expressions in object literals
Adds support for spread expressions inside of object literals. This can be handy when constructing maps for `class` bindings.
2026-01-07 12:37:52 -05:00
Kristiyan Kostadinov 81549248b7 refactor(compiler): add spread elements to expression AST
Updates the expression AST to have support for spread elements inside object literals.
2026-01-07 12:37:52 -05:00