Commit Graph

37371 Commits

Author SHA1 Message Date
Angular Robot 2959d6bd9e docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-05-15 11:41:49 -07:00
Angular Robot 991e0b4276 build: update dependency node to v22.22.3
See associated pull request for more information.
2026-05-15 11:39:51 -07:00
Angular Robot 2864fed214 build: update all non-major dependencies
See associated pull request for more information.
2026-05-15 11:38:00 -07:00
Douglas Parker 1963a0eb18 refactor(forms): add provideExperimentalWebMcpForms
This enables the use of the `experimentalWebMcpTool` option on signal forms and implicitly declares a WebMCP tool based on the form data model. This is an experiment inspirted by the WebMCP declarative forms API to see if Angular's framework-level knowledge of the form's declarative data model can produce higher quality WebMCP tools than the web standard can on its own with less effort from the developer.

Example:

```typescript
// main.ts

import {bootstrapApplication} from '@angular/platform-browser';
import {provideExperimentalWebMcpForms} from '@angular/forms';
import {MyComp} from './form';

bootstrapApplication(MyComp, {
  providers: [
    // Activate the feature.
    provideExperimentalWebMcpForms(),
  ],
});
```

```typescript
// form.ts

import {Component, signal} from '@angular/core';
import {form} from '@angular/forms';

@Component({ /* ... */ })
export class MyComp {
  private readonly f = form(signal({
    firstName: '',
    lastName: '',
  }), {
    // Implicitly creates a WebMCP tool named `createUser` which accepts a `firstName` and `lastName` as parameters.
    experimentalWebMcpTool: {
      name: 'createUser',
      description: 'Creates a user with the given name.',
    },

    // Invokes the submit action when the agent calls the WebMCP tool.
    submission: {
      action: () => {
        console.log('User clicked submit, or agent called the tool!');
      },
    },
  });

  // ...
}
```
2026-05-15 11:35:22 -07:00
Jens Kuehlers 358d2e63fb docs: move Angular 19 to unsupported versions 2026-05-15 10:41:39 -07:00
Angular Robot 1a7f00f7c0 build: update cross-repo angular dependencies to v22.0.0-rc.0
See associated pull request for more information.
2026-05-15 10:40:32 -07:00
Andrew Scott 13911b156b refactor(compiler-cli): Remove unused properties of IndexedComponent interface
These properties aren't used in the Kythe indexer and can be removed
2026-05-15 10:37:57 -07:00
Alex Rickabaugh 0a9b19454d refactor(core): add internal API for creating foreign views
Introduces `createForeignView`, an internal API for creating foreign view
directly inside `LContainer`s. Foreign views (`TViewType.Foreign`) are bounded
by head and tail comment nodes and can contain dynamic, non-Angular DOM nodes.

Updates Render3 node manipulation to support inserting, detaching, and moving
foreign views along with their internal content.
2026-05-15 10:33:52 -07:00
Matthew Beck 71f8d488e0 docs: release notes for the v22.0.0-rc.0 release 2026-05-13 16:34:51 -07:00
Matthew Beck 21ca0918c7 docs: release notes for the v21.2.13 release 2026-05-13 16:26:24 -07:00
Kam 7557b339ea refactor(core): mark resource() overloads as @publicApi 22.0
#68253 graduated `resource`, `rxResource`, and `httpResource` to stable
by swapping `@experimental` for `@publicApi 22.0` across three files.
The two `resource()` overloads in `packages/core/src/resource/resource.ts`
were missed and still carried `@experimental 19.0`. The public-api
golden already lists both overloads as `// @public`, so this aligns the
source with what the rest of the codebase reflects.
2026-05-13 15:54:55 -07:00
Alan Agius dbf38537f2 docs: add version 22 to the browser support reference table 2026-05-13 15:33:56 -07:00
AleksanderBodurri ec63947dc6 refactor(core): patch special provider classes with __NG_ELEMENT_ID__
Calls a new patchSpecialProvider function to attach __NG_ELEMENT_ID__ and track special providers for debug tooling
2026-05-13 12:15:21 -07:00
Kristiyan Kostadinov 06f6dec7aa fix(compiler): type check invalid for loops
Currently if a `@for` loop doesn't have a `track` expression we don't produce an AST for it at all which means no type checking and language service support for it.

These changes make it so we produce the AST anyways since it gives the user more tools to resolve the issue (e.g. autocompletion when writing the `track` expression).
2026-05-13 11:26:42 -07:00
Ben Hong 3584eeb491 docs: add clarification around plain object models
Co-authored-by: Matthieu Riegler <kyro38@gmail.com>
2026-05-13 11:24:34 -07:00
Angular Robot a8421d37de build: update devinfra digest to eaa9aaa
See associated pull request for more information.
2026-05-13 11:22:49 -07:00
Alan Agius 739bd37b0a release: bump Angular DevTools version to 1.15.0 2026-05-13 15:28:49 +02:00
Angular Robot 642fd43ea6 build: update pnpm to v11.1.1
See associated pull request for more information.
2026-05-12 21:39:31 -07:00
Angular Robot f247ea417a build: update cross-repo angular dependencies
See associated pull request for more information.
2026-05-12 21:38:32 -07:00
Matthieu Riegler f05d675651 build: update cross-repo angular dependencies (main)
This PR also replaces the implementation of the select component on ADEV due to the aria breaking changes
2026-05-12 16:41:38 -07:00
Angular Robot ff816fb5ae build: update cross-repo angular dependencies
See associated pull request for more information.
2026-05-12 16:41:38 -07:00
Angular Robot d42fdf151e docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-05-12 15:50:42 -07:00
Matthew Beck 7ff4847e03 Revert "refactor(compiler-cli): drop @ts-ignore around fs.readFileSync"
This reverts commit e0593ecc8b.
2026-05-12 15:20:55 -07:00
Matthew Beck 1bb2c68200 docs: release notes for the v19.2.22 release 2026-05-12 14:48:31 -07:00
Joey Perrott 6a07fddb9a build: update @angular/ng-dev
Update @angular/ng-dev to use commit 2c36222db3f44751284cc93b3806dbe1baee583a to pull in the latest merge validation logic fixes.
2026-05-12 14:26:10 -07:00
Matthew Beck 1d3bf59f9a fix(compiler): simplify handling of colon host with a selector list
Update `_convertColonHost` to extract and use only the first argument from a `:host(...)` selector list, ignoring subsequent arguments instead of splitting and duplicating the selector list. Also remove the obsolete test cases from `host_and_host_context_spec.ts`.
2026-05-12 14:25:46 -07:00
Matthew Beck 6de4955124 fix(compiler): remove dedicated support for legacy shadow DOM selectors
Remove `_shadowDOMSelectorsRe` and `_convertShadowDOMSelectors` from `shadow_css.ts` so that `::shadow`, `::content`, `/shadow-deep/`, and `/shadow/` are no longer treated specially or stripped from user CSS. Instead, they are naturally scoped like standard selectors. Also remove the legacy failing test from `shadow_css_spec.ts`.
2026-05-12 14:24:29 -07:00
Matthew Beck 23f0898edb fix(compiler): remove deprecated shadow CSS encapsulation polyfills
Completely remove support for `polyfill-next-selector`, `polyfill-unscoped-rule`, and `polyfill-rule` from `shadow_css.ts`, along with their associated methods and regular expressions. Also delete `polyfills_spec.ts` entirely.
2026-05-12 14:24:02 -07:00
Matthew Beck 770e505f78 fix(compiler): preserve leading commas in animation definitions
Update the regular expression in `_scopeAnimationRule` to prevent absorbing and deleting leading commas after `animation:`. Also remove the corresponding legacy test case from `keyframes_spec.ts`.
2026-05-12 14:22:56 -07:00
Matthew Beck 338bf7d46f fix(compiler): enforce parentheses containing arguments for :host-context
Modify `_colonHostContextRe` and `_hostContextPattern` to strictly process `:host-context` only when parentheses containing at least one non-whitespace argument character are present. Update `_colonHostRe` to explicitly NOT match `:host` when followed by a hyphen. When invoked without parentheses or with empty parentheses, the selector is completely ignored and treated as a standard CSS pseudo-class in the source text. Also update the legacy test case from `host_and_host_context_spec.ts`.
2026-05-12 14:22:19 -07:00
Kam e0593ecc8b refactor(compiler-cli): drop @ts-ignore around fs.readFileSync
The `readFileBuffer` method in `node_js_file_system.ts` was wrapped in
`@ts-ignore` to suppress a TS2322 Buffer/Uint8Array typing error that
was fixed in the TypeScript 5.9.2 upgrade. The minimum supported
TypeScript is now 6.0, so the suppression is dead.
2026-05-12 13:21:53 -07:00
Joey Perrott cdef73a249 build: update @angular/ng-dev
Update the @angular/ng-dev dependency to the latest build to pull in recent fixes and improvements.
2026-05-12 12:08:55 -07:00
Angular Robot 66b9259401 build: lock file maintenance
See associated pull request for more information.
2026-05-12 11:42:31 -07:00
Aleksander Bodurri 84d757446b refactor(devtools): use WeakRef in idToInjector map for injector cleanup
Replace the manual injectorsSeen cleanup mechanism with WeakRef and FinalizationRegistry. The old approach worked but coupled cleanup to the UI change detection and required tracking seen injectors across traversal. WeakRef lets the browser handle this naturally, removing the injectorsSeen set and the manual cleanup loop.
2026-05-12 11:37:07 -07:00
SkyZeroZx a617967d90 refactor(http): update HTTP resource options APIs to stable
Marks `HttpResourceRequest`, `HttpResourceOptions`, and `HttpResourceRef` as public APIs following the stabilization of the Resource API in https://github.com/angular/angular/pull/68253
2026-05-12 10:48:03 -07:00
Paul Gschwendtner 95034a7b92 ci: mark devversion as unavailable
Currently OOO and I don't want reviews to be necessarily stuck for too long.
2026-05-12 10:47:09 -07:00
Alan Agius e90423f5f7 build: disable strict release age checks in pnpm workspaces
Updates all pnpm-workspace.yaml configurations across the repository to set minimumReleaseAgeStrict: false. This resolves dependency installation failures caused by missing time field metadata in the npm registry for certain packages such as @babel/helper-globals. A TODO comment is also added to each configuration file to track future investigation of this registry metadata issue.
2026-05-12 10:43:00 -07:00
Matthew Beck 62710ad4d6 docs: release notes for the v20.3.21 release 2026-05-12 10:13:01 -07:00
Alan Agius 62f8dbb626 build: remove @angular-devkit/build-angular dependency and configure pnpm resolution mode
Try to fix pnpm 11 and defer integration test.
2026-05-12 08:49:44 -07:00
Angular Robot 7acac39ada build: update pnpm to v11.1.0
See associated pull request for more information.

Closes #68687 as a pr takeover
2026-05-12 08:49:44 -07:00
Andrew Scott 1f287b9ba7 refactor(router): Move target RouterState creation before 'blocking' stage
This change moves `RouterState` creation to _before_ the `afterPreactivation` step,
which is the step that pauses until bootstrap listeners are complete. It is used for
'enabled blocking' initial navigation and destructive hydration. After this stage,
activation is expected to be (more or less) synchronous.

More importantly than above (since enabled blocking and destructive hydration are
essentially deprecated), this also oves the state creation before the view transition
creation.

These are done to accomodate features in the future that would depend on the RouterState
(e.g. ones which need to know which `ActivatedRoute` instances are new and which are reused).
These features may include additional async blocks/waits, which should not happen after view
transition creation (which freezes the UI until resolved).
2026-05-11 18:29:52 -07:00
Kam e661f4d255 refactor(compiler-cli): replace forEach with for...of in entry_point
Convert four `.forEach()` calls in `private_export_checker.ts` and
`reference_graph.ts` to `for...of`, matching the iteration style used
elsewhere in the compiler. The TODOs that forced these workarounds are
obsolete.
2026-05-11 18:29:04 -07:00
Angular Robot 2f143bf9c9 docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-05-11 12:46:59 -07:00
Angular Robot 90c4223aa9 build: update pnpm to v11
See associated pull request for more information.
2026-05-11 12:43:55 -07:00
Douglas Parker 38e26f0759 refactor(core): add "experimental" to WebMCP API names.
WebMCP is still an experimental standard and going through frequent changes in the Chrome implementation and the standards process. As a result, we should be clear about the support status of this API and its overall stability guarantees.
2026-05-11 12:43:06 -07:00
Kam 7a146238ba refactor(compiler-cli): drop @ts-ignore around jsDocParsingMode
The getters and setters for jsDocParsingMode in `host.ts` and
`ts_create_program_driver.ts` were suppressed with @ts-ignore to
support TypeScript 5.2, which lacked the property on `ts.CompilerHost`.
The minimum supported TypeScript is now 6.0, and `jsDocParsingMode`
is part of the public TypeScript API, so the suppressions can go.
2026-05-11 12:40:25 -07:00
Matthieu Riegler 52a848790f docs: update guides to use @Service
In the cases where it was preferable to use `@Service` in place of `@Injectable`
2026-05-11 12:38:23 -07:00
Jessica Janiuk 43a8df9520 ci: update pullapprove
This removes thePunderWoman from active review requests, but leaves passive on.
2026-05-11 12:37:45 -07:00
Ben Hong ef134ac367 docs: add new signal forms field metadata guide
Co-authored-by: Matthieu Riegler <kyro38@gmail.com>
2026-05-11 12:05:27 -07:00
Matthieu Riegler 7360c1da68 docs(docs-infra): improve api docs extraction
This allows us to show the API docs when the jsdoc block is at the top of a overloaded function (and not on the implementation signature).

eg: `injectAsync`
2026-05-11 12:03:39 -07:00