36240 Commits

Author SHA1 Message Date
Leon Senft acb78eeb7a test(forms): [field] inputs on components should just pass through
Test that a component with a bound `[field]` input is not treated as a
control, and that `fieldBinding` does not include the corresponding
`Field` instance.
2025-11-14 08:37:42 -08:00
Angular Robot 415cfecf09 build: update pnpm to v10.22.0
See associated pull request for more information.
2025-11-14 08:35:14 -08:00
Angular Robot f7737a5f25 build: update dependency bazel to v7.7.1
See associated pull request for more information.
2025-11-14 08:34:49 -08:00
Angular Robot 654e17651c build: update cross-repo angular dependencies
See associated pull request for more information.
2025-11-14 08:33:20 -08:00
SkyZeroZx 9ec964334e docs: Uses the self-closing tag syntax 2025-11-14 08:32:35 -08:00
KAUSHIK REDDY AWALA 6f716e400e docs(docs-infra): update di factory provider function to use correct parameters
This PR fixes a parameter mismatch in the `apiClientFactory` function documentation example. The factory was previously passing only http and `userService` to the ``ApiClient`` constructor, but the constructor actually requires http, `baseUrl`, and `rateLimitMs` as separate parameters.

Key Changes:

Extracts baseUrl and rateLimitMs from UserService using getter methods
Updates the ApiClient instantiation to pass all three required constructor parameters
Adds a comment explaining the assumption about UserService providing these values
2025-11-14 08:32:07 -08:00
Alan Agius e840cd547d fix(docs-infra): update firebase caching regex for generated files
The regex for caching generated files in firebase.json has been updated to
include lowercase letters and underscores in the 8-character hash. This
ensures that files with names like `chunk-CrXHmw_W.js` are correctly
cached.
2025-11-14 08:29:00 -08:00
Jessica Janiuk 8989536615 docs: release notes for the v20.3.12 release 2025-11-14 08:14:27 -08:00
Cheng-Hsuan Tsai 6d8c3fc888 docs(docs-infra): hide file tabs when code example is hidden 2025-11-13 15:58:09 -08:00
Angular Robot 024c93904c docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2025-11-13 15:41:09 -08:00
Angular Robot ab0ea1a8f0 build: update cross-repo angular dependencies
See associated pull request for more information.
2025-11-13 15:29:02 -08:00
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