36729 Commits

Author SHA1 Message Date
Angular Robot 2430c60442 build: update cross-repo angular dependencies to v21.0.0-rc.2
See associated pull request for more information.
2025-11-13 14:06:19 -08:00
Alessio Pelliccione 25320ae1eb docs(docs-infra): improve theme picker accessibility and add animations 2025-11-13 14:05:08 -08:00
Angular Robot c6068f2d98 docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2025-11-13 14:02:43 -08:00
Joey Perrott fe2cc7967e ci: use hardcoded global approvers group
Use a single hardcoded, within the pullapprove config file, group for global approvers instead of leveraging a github team as a group
2025-11-13 12:16:48 -08:00
Matthieu Riegler 1b895fece6 refactor(core): flip ngDevMode condition for formatter
In cases the `ngDevMode` flag hasn't been set, still enable the formatter. What matters is if `ngDevMode` is `false ` we tree shake that away.
2025-11-13 10:01:10 -08:00
SkyZeroZx 718eb7bb3a docs: adds guide references to router APIs
Adds `@see` tags with links to relevant guides in the router documentation.
2025-11-13 10:00:19 -08:00
Leon Senft 98ce9a7b17 refactor(forms): use AbortSignal to cancel debounced updates
Add an `AbortSignal` parameter to `Debouncer`. Implementations may
choose to accept this parameter to be informed when a debounced
operation is aborted. This may be useful for canceling pending timers or
avoiding unnecessary work.
2025-11-13 09:59:19 -08:00
Angular Robot 1a94d71ad7 docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2025-11-13 09:43:45 -08:00
Matthieu Riegler f737a9dd5c docs(docs-infra): Add support for metadata on fenced code blocks
This will help us replace `docs-code` with inline code usages and prevent future indentation issues
2025-11-13 09:36:13 -08:00
Shuaib Hasan Akib 3cfd4361a5 docs: replace <docs-code> block with standard fenced code block for typescript example
Replaced the <docs-code> wrapper with a Markdown fenced code block to improve
copy/paste usability, syntax highlighting consistency, and alignment with current
documentation formatting standards.

Inspired by #65043
2025-11-13 09:34:10 -08:00
Kristiyan Kostadinov 3f80ae74ba fix(core): SSR error in signal forms
Resolves an SSR error, because we weren't checking if `MutationObserver` is available.
2025-11-13 09:12:42 -08:00
Matthieu Riegler d1ab73dd87 refactor(core): remove resource flag.
This was used to migrate G3 and is no longer necessary.
2025-11-13 09:12:16 -08:00
SkyZeroZx 373c101d02 refactor(devtools): improve route data and resolver views
Adds an enhanced route data tree view to better visualize both route resolvers and router data.
2025-11-13 09:11:53 -08:00
Shuaib Hasan Akib caaa5ec8e6 docs: replace <docs-code> block with standard fenced code block for typescript example
Replaced the <docs-code> wrapper with a Markdown fenced code block to improve
copy/paste usability, syntax highlighting consistency, and alignment with current
documentation formatting standards.

Inspired by angular#65043
2025-11-13 09:11:20 -08:00
Charles Lyding 258c295b92 docs: create Vitest migration guide
This commit introduces a new guide for migrating existing Angular projects from Karma/Jasmine to Vitest.

The guide covers:
- Manual steps for installing dependencies and updating `angular.json`.
- Handling custom `karma.conf.js` configurations.
- Removing Karma-related files and packages.
- Configuring browser mode for Vitest.
- Details on the `refactor-jasmine-vitest` schematic for automated test refactoring.

The guide also clarifies that while Vitest is the default for new projects, migration for existing projects is experimental. It emphasizes reviewing changes and provides guidance on adapting custom Karma configurations to Vitest.

Renames `experimental-unit-test.md` to `migrating-to-vitest.md` and updates `sub-navigation-data.ts` accordingly.
2025-11-13 09:10:56 -08:00
Angular Robot 57a78b72ad build: update cross-repo angular dependencies
See associated pull request for more information.
2025-11-13 09:09:30 -08:00
hawkgs 7ab1b3a32a docs(docs-infra): improve playground layout
Improve the layout and optimize the empty space; Introduce some minor improvements to the code editor
2025-11-13 09:07:53 -08:00
SkyZeroZx b6a91d4c39 docs: Fixed mermaid diagram node label contrast in dark mode 2025-11-12 15:01:35 -08:00
Kristiyan Kostadinov f7e58577a4 refactor(compiler-cli): rework type checking for signal forms
Reworks the way we approach type checking of signal forms to be closer to the behavior at runtime. There are a couple of scenarios that we handle:

1. For native controls, we now produce simplified type checking code that looks as follows:

```
var t1 = null! as number | string; // Type depends on the input `type`.
t1 = someField().value();
```

2. For custom controls we generate bindings to the individual inputs, rather than checking conformance against `FormValueControl`/`FormCheckboxControl`. This is closer to the behavior at runtime and it allows us to handle generic directives properly.
2025-11-12 13:13:48 -08:00
Kristiyan Kostadinov 14152f69b9 refactor(core): remove unused type
Removes the `ExtractFromControlValue` type since it won't be necessary anymore.
2025-11-12 13:13:48 -08:00
SkyZeroZx 4544135b1e docs: update tutorials with self-closing tags, standalone router directives, and fix syntax highlighting 2025-11-12 13:13:22 -08:00
Jan Martin 48d395402d release: bump Angular DevTools version to 1.6.0 2025-11-12 11:59:07 -08:00
Angular Robot 3b51b0174c build: update cross-repo angular dependencies
See associated pull request for more information.
2025-11-12 11:51:33 -08:00
SkyZeroZx a48029b810 docs: correct example for RouteReuseStrategy getRouteKey
Update the example to properly demonstrate the getRouteKey method usage fixes #65021
2025-11-12 11:49:03 -08:00
Angular Robot fc5710bb7f docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2025-11-12 11:43:32 -08:00
SkyZeroZx 05ef2a5ca9 docs: correct code block language in error handling and signals interop 2025-11-12 11:35:09 -08:00
Angular Robot 78b1a2e0cc build: update cross-repo angular dependencies
See associated pull request for more information.
2025-11-12 11:33:08 -08:00
Angular Robot 8e81d0a9e8 build: update pnpm to v10.21.0
See associated pull request for more information.
2025-11-12 09:42:28 -08:00
Angular Robot 42454b428b build: update bazel dependencies
See associated pull request for more information.
2025-11-12 09:41:05 -08:00
Angular Robot 76a5246943 build: update all non-major dependencies
See associated pull request for more information.
2025-11-12 09:39:55 -08:00
Alan Agius 46099910c0 build: allow any version of @angular/* packages for peer dependencies
This change configures pnpm to allow any version of  `@angular/*` packages to satisfy peer dependencies. This is necessary because `@angular/*` packages are managed within this monorepo, and this rule prevents issues with peer dependency resolution when different versions might be present during development or testing.
2025-11-12 09:35:58 -08:00
Joey Perrott 7d6235f3fb build: use mjs files for ng-dev configuration
In preperation for ng-dev requiring mjs files for configuration, switch over our usage
2025-11-12 09:35:19 -08:00
Alan Agius 0835bd815f build: improve dependency management for local packages
Refactor .pnpmfile.cjs to use a Set for localAngularPackages for better performance.
Adjust typescript dependency handling in compiler-cli to correctly use devDependencies.
Promote rxjs and zone.js from peer dependencies to regular dependencies for local packages.
These changes streamline dependency resolution and align with pnpm's behavior for workspace dependencies.
2025-11-12 09:34:27 -08:00
Alan Agius c51b42f1ce build: remove extra deps
Most of these deps are either unused or are in `adev`
2025-11-12 09:34:27 -08:00
Andrew Kushnir cc095d447c docs: release notes for the v21.0.0-rc.2 release 2025-11-12 08:41:32 -08:00
Andrew Kushnir 1f6de175c9 docs: release notes for the v20.3.11 release 2025-11-12 08:26:29 -08:00
Danny Koppenhagen c3e82fb2d5 refactor(core): render additional WAI-ARIA 1.3 property bindings as attributes
Support additional ARIA properties from Accessible Rich Internet Applications (WAI-ARIA) version 1.3.

| attribute | property |
|-----------|----------|
| `aria-activedescendant`           | `ariaActiveDescendantElement` |
| `aria-colindextext`           | `ariaColIndexText` |
| `aria-controls`           | `ariaControlsElements ` |
| `aria-describeyby`           | `ariaDescribedByElements ` |
| `aria-description`           | `ariaDescription` |
| `aria-details`           | `ariaDetailsElements ` |
| `aria-errormessage`           | `ariaErrorMessageElements ` |
| `aria-flowto`           | `ariaFlowToElements ` |
| `aria-labelledby`           | `ariaLabelledByElements ` |
| `aria-owns`           | `ariaOwnsElements ` |
| `aria-rowindextext`           | `ariaRowIndexText ` |

closes #64847
2025-11-11 14:08:58 -08:00
Matthew Beck 24cfd5a0ed fix(compiler): support complex selectors in :nth-child()
:nth-child() (and its siblings) support complex expressions, e.g.
`:nth-child(2n of :is(.foo, .bar))`. Previously we'd choke because of
the `:is()`. Now, we reuse the `_parenSuffix` subexpression to match
nested parentheses the same way we do for :host() and :host-context().
Note that we only support 3 levels of nesting, so a selector like
`:nth-child(n of :is(:has(:not(.foo))))` will still break.

I'll say yet again that we really should add a proper parser so we stop
getting bug reports like this :)

Fixes #64913
2025-11-11 14:03:32 -08:00
Alan Agius 4ed8781301 refactor(core): improve resource loading with async/await
Refactor  to use async/await for clearer asynchronous operations and enhanced error handling.
Simplify resource caching and streamline the resolution of component templates and styles.
Update  in the router to align with the new async resource resolution.
2025-11-11 12:50:16 -08:00
Andrew Scott 4af408afcb Revert "feat(service-worker): notify clients about version failures (#62718)"
This reverts commit 6d011687ec.

issue #63500 reproduces at head on the main branch in the dev app.
Reverting this change along resolves it.

fixes https://github.com/angular/angular/issues/63500
2025-11-11 12:48:45 -08:00
Leon Senft d337cfb68f feat(forms): add debounce() rule for signal forms
The `debounce()` rule allows developers to control when changes to a
form control are synchronized to the form model.

This feature necessitated some changes to `FieldState`:

  * `controlValue` is a new signal property that represents the current
    value of a form field as it appears in its corresponding control.

  * `value` conceptually remains unchanged; however, its value may lag
    behind that of `controlValue` if a `debounce()` rule is applied.

The `debounce()` rule essentially manages when changes to `controlValue` are
synchronized to `value`. The intent is that an expensive or slow
validation rule can react to the debounced `value`, rather than a more
frequently changing `controlValue`.

Directly updating `value` immediately updates `controlValue`, and cancels any
pending debounced updates.

When multiple `debounce()` rules are applied to the same field, the last
currently active rule is used to debounce an update. These rules are
applied to child fields as well, unless they override them with their
own rule.
2025-11-11 12:00:09 -08:00
Leon Senft 8866934334 refactor(forms): do not infer accumulated metadata type from initial value
This removes the need to specify type arguments for
`reducedMetadataKey()` when the value returned from the `getIntial`
callback is a subtype of the accumulated type.
2025-11-11 12:00:09 -08:00
Angular Robot 631cf977a8 build: update cross-repo angular dependencies
See associated pull request for more information.
2025-11-11 11:51:05 -08:00
Alan Agius 74dca6eccd build: lock file maintenance
See associated pull request for more information.
2025-11-11 10:50:09 -08:00
Angular Robot 3b1fbf00da build: update cross-repo angular dependencies
See associated pull request for more information.
2025-11-11 10:19:24 -08:00
Doug Parker 490435bf76 fix(core): skip Angular formatting when formatting signals recursively
The flag `skipFormatting` got renamed to `ngSkipFormatting` during review of https://github.com/angular/angular/pull/64000, but a couple usages got missed, causing some unfortunate UI recursion.
2025-11-11 10:14:30 -08:00
Kristiyan Kostadinov 8277906455 refactor(compiler): remove unused code
The `fullInheritane` flag from the metadata and the `CopyDefinitionFeature` that it controls appear to no longer be used since `fullInheritance` is always false. The feature appears to have been there to support ngcc which was removed some time ago.
2025-11-11 10:04:29 -08:00
Angular Robot 75dd600570 build: lock file maintenance
See associated pull request for more information.
2025-11-11 08:48:00 -08:00
SkyZeroZx d999667b57 docs: add reference to Built-in Pipes in multiple pipe files 2025-11-11 08:47:07 -08:00
Matthieu Riegler 21ca49cf62 refactor(core): rename ExperimentalIsolatedShadowDom to IsolatedShadowDom
This API is still experimental
2025-11-11 08:46:06 -08:00