Commit graph

36863 commits

Author SHA1 Message Date
Alan Agius
e8f8ac20d6 build: remove @angular-devkit/architect-cli from dev dependencies
This dependency is not used.
2026-01-13 08:33:52 -08:00
Matthieu Riegler
72534e2a34 feat(compiler): Add support for the instanceof binary operator
Because why not ?

fixes #59975
2026-01-13 08:33:12 -08:00
Georgi Serev
9273f1c3c2
feat(devtools): add resource visualization to the signal graph
Convert the signal graph to a Devtools-FE-specific signal graph that supports clusters; Add support for `resource` clusters; Introduce some improvements to the signal graph viz
2026-01-13 08:32:46 -08:00
lyutails
910768f5cc docs: update hierarchical-dependency-injection.md
VillainsService highly likely misspelled and then written as VillainService with 's' missing
2026-01-13 08:31:41 -08:00
Alan Agius
6e82167481 ci: update Renovate configuration to replace Bazel module dependency command
This uses `ng-dev misc sync-module-bazel`, add `MODULE.bazel` to file filters, and remove specific dependency name matching.
2026-01-13 08:28:43 -08:00
Andrew Scott
69da6390b1 build: improve changelog generation and tag fetching in release script
- Fetch tags explicitly to ensure local availability.
- Implement `getPreviousTag` to reliably determine the base for changelog generation, falling back to the latest `vsix-*` tag if the specific previous version tag is missing.
- Filter changelog commits by subject to exclude duplicates (e.g. cherry-picks) that are already present in the previous release history but have different hashes.
2026-01-12 16:06:35 -08:00
Andrew Scott
78755771e1 build: fix changelog generation for last rev
updates changelog generation to work when releasing the first final
version.
2026-01-12 14:53:20 -08:00
SkyZeroZx
36c2f4b6f9 docs(docs-infra): replace deprecated Router.isActive with isActive (#66430)
Updates the view transition logic to use the isActive function instead of the deprecated Router.isActive

PR Close #66430
2026-01-12 22:42:32 +00:00
SkyZeroZx
a39e3fdabe docs: update examples to use isActive instead of deprecated Router.isActive (#66430)
PR Close #66430
2026-01-12 22:42:32 +00:00
Andrew Scott
e8c44a00f9 refactor(router): Retain original navigateEvent across redirects
This builds off of #66197 by retaining the original navigateEvent across redirects
so the NavigateEvent can more accurately track the lifecycle of a navigation,
which may span across several NavigationStart events due to redirects
2026-01-12 14:41:54 -08:00
Andrew Scott
e34365cfd5 build: use tsx for release script
I otherwise get Unknown file extension ".mts". using tsx fixes it for me
2026-01-12 14:41:14 -08:00
Alex Rickabaugh
1ba9b7ac50 feat(core): resource composition via snapshots
* Define `ResourceSnapshot<T>` as a type union of possible states for a
`Resource<T>`.
* Add `Resource.snapshot()` to convert a `Resource` to a signal of its
  snapshot.
* Add `resourceFromSnapshots` to convert a reactive snapshot back into a
  `Resource`.

By converting resources from/to `Signal<ResourceSnapshot>`s, full
composition of resources is now possible on top of signal composition APIs
like `computed` and `linkedSignal`.

For example, a common feature request is to have a `Resource` which retains
its value when its reactive source (params) changes. This can now be built
as a utility, leveraging `linkedSignal`'s previous value capability:

```ts
function withPreviousValue<T>(input: Resource<T>): Resource<T> {
  const derived = linkedSignal({
    source: input.snapshot,
    computation: (snap, previous) => {
      if (snap.status === 'loading' && previous?.value) {
        // When the input resource enters loading state, we keep the value
        // from its previous state, if any.
        return {status: 'loading', value: previous.value.value};
      }

      // Otherwise we simply forward the state of the input resource.
      return snap;
    },
  });

  return resourceFromSnapshots(derived);
}

// In application code:

userId = input.required<number>();
user = withPreviousValue(httpResource(() => `/user/{this.userId()}`));
// if `userId()` switches, `user.value()` will keep the old value until
// the new one is ready!
```
2026-01-12 13:49:56 -08:00
Matthieu Riegler
65fa5b5439 fix(forms): Ensure the control instruction comes after the other bindings
Prior to this change, binding to radio value was sensitive to the order in which `value` & `formField` where binding in the template.
The compiler change makes that order non-important.

fixes #66402
2026-01-12 13:49:19 -08:00
cexbrayat
7fd076bdd3 test(forms): improve test coverage for multiple pattern validators
Add comprehensive test cases to validate behavior when multiple
pattern validators are applied to the same field.

These tests clarify that multiple patterns operate with AND logic,
where each pattern is validated independently and produces its own
error when it doesn't match.
2026-01-12 13:48:16 -08:00
Shuaib Hasan Akib
1b4dcc01ff docs: replace old https://angular.io/license with https://angular.dev/license 2026-01-12 13:41:30 -08:00
Andrew Scott
ebc90c26f5 feat(language-server): Add completions and hover info for inline styles
This adds completions for inline styles, using the SCSS language service

resolves #65489
2026-01-12 13:40:37 -08:00
Andrew Scott
573aadef7e feat(language-server): Add quick info for inline styles
This adds quick info to the langauge server for inline styles using the
scss language service.
2026-01-12 13:40:37 -08:00
Andrew Scott
26fd0839c3 feat(language-server): Add folding range support for inline styles
Adds folding range support for inline styles to the language server
2026-01-12 13:40:37 -08:00
Mikhail Efanov
27276374ab build: update dev container configuration
build: update dev container configuration

build: update dev container configuration

Update dev container configuration files to support latest environment.
- Use customizations.vscode structure instead of deprecated extensions property.
- Update bazel extension to BazelBuild.vscode-bazel.
- Ignore .pnpm-store directory.
- Update ports list
- Use forwardPorts instead appPort

Document the usage of Dev Containers in building-and-testing-angular.md.
2026-01-12 13:39:29 -08:00
Shuaib Hasan Akib
f53f878e0f fix(docs-infra): use margin instead of padding to prevent heading hover overflow
Replaced padding-block-start with margin-block-start on
.docs-reference-section-heading to prevent anchor hover and click areas from extending into empty space above the heading. This ensures hover behavior aligns with the visible text.
2026-01-12 13:38:46 -08:00
Matthieu Riegler
c09f5352f6
docs(docs-infra): Throw build error on invalid guide links
The list of valid links is generated from navigation data configuration in the ADEV app.
Redirections are knowingly exclude so we stop referencing them.
2026-01-12 13:38:20 -08:00
Shuaib Hasan Akib
8bdd98ef41 fix(docs-infra): prevent duplicate description rendering for block API entries
Block entries (@if, @defer, @for,@let, @switch) were falling back to the generic
DocsReference template, causing the description to appear twice - once in
the header section and once in the main content area.

This commit adds a dedicated rendering path for block entries:
- Creates BlockEntryRenderable type and associated transforms
- Adds BlockReference template that uses RawHtml directly
- Modifies HeaderApi to accept hideDescription prop
- Updates processing and rendering pipelines to handle blocks

The fix ensures block documentation displays only one description section
while preserving the existing behavior for all other API entry types.

Update adev/shared-docs/pipeline/api-gen/rendering/transforms/block-transforms.mts

Co-authored-by: Matthieu Riegler <kyro38@gmail.com>
2026-01-12 13:37:54 -08:00
Roshith
933ca9e5dc docs: fix spelling mistake in documentation
correct typo where "youself" was written instead of "yourself"
2026-01-12 13:36:56 -08:00
Joey Perrott
4d6a6aafee build: begin requring usage of release mode for releases
Start requiring the usage of the release merge-mode for allowing releases to be made from the repository
2026-01-12 13:36:19 -08:00
Angular Robot
4a76058baf build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-12 13:35:19 -08:00
Angelo Parziale
4d983e9904
build(docs-infra): Update dependency @xterm/xterm to v6
Update dependency @xterm/xterm to v6 and fix style
2026-01-12 10:16:24 -08:00
SkyZeroZx
511d9ca9d2 docs: remove Component suffix in animations, HTTP, and SSR guides
Removes the unnecessary `Component` suffix from examples.
Also fixes button styling in the animations examples, which previously did not render correctly in dark mode.
2026-01-12 10:07:05 -08:00
Shuaib Hasan Akib
c63bc58e0f docs: correct line number highlighting in query examples
Updates incorrect highlighted line numbers so they match the intended
code being referenced in the documentation.
2026-01-12 10:04:14 -08:00
SkyZeroZx
e38c1bf743 refactor(http): remove redundant providedIn: 'root' in XSRF_HEADER_NAME
Removes unnecessary `providedIn: 'root'` declarations from injection token
2026-01-12 10:00:24 -08:00
SkyZeroZx
fa6e82b569 refactor(core): Add missing OnDestroy to zone and zoneless change detection schedulers
Implements the OnDestroy interface in NgZoneChangeDetectionScheduler and ChangeDetectionSchedulerImpl
2026-01-12 10:00:24 -08:00
Miles Malerba
10e9022a07 feat(forms): allow focusing bound control from field state
Allows focusing the assocated bound control from the `FieldState`.
2026-01-12 09:59:42 -08:00
Matthieu Riegler
b22835579e docs(docs-infra): prevent from showing duplicate usage blocks in functions API docs
fixes #66398
2026-01-12 09:50:12 -08:00
Matthieu Riegler
a056413520 docs(docs-infra): Show API decorators docs
fixes #66129
2026-01-12 09:41:25 -08:00
Matthieu Riegler
33b2d9905d docs(docs-infra): Add community russian translation
fixes #65720
2026-01-12 09:40:06 -08:00
Matthieu Riegler
ad699cebb5 docs: change language section to "community translations" 2026-01-12 09:30:18 -08:00
Andrew Scott
89d47d814d
refactor(router): Change RouterLink internals to use signals
This simplifies some of the internals of RouterLink because signals do
the heavy lifting of determining when things have changed
2026-01-12 08:56:32 -08:00
Angular Robot
460c1c7e71 build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-12 08:55:15 -08:00
omar-almasry11
405b05607c fix(docs-infra): improve symbolic green contrast for WCAG compliance
Adjusts the symbolic green color to meet WCAG contrast requirements in documentation styles.
2026-01-12 08:50:33 -08:00
Jeevan Mahesha
66b40d4fb3 docs: update testing guide to include Vitest and improve authGuard test setup 2026-01-12 08:32:11 -08:00
Angular Robot
783f20edbc build: update pnpm to v10.28.0
See associated pull request for more information.
2026-01-12 08:31:45 -08:00
Matthieu Riegler
7f1b790f84 docs: improve separation between enter and leave example
fixes #66359
2026-01-12 08:18:16 -08:00
Kristiyan Kostadinov
f0dba6deb9 build: update license for vscode extension
The vscode extension still has the old license headers pointing pointing to AIO.
2026-01-12 08:17:39 -08:00
aparziale
e7f24014cf docs(docs-infra): Angular Aria listbox shows placeholder for "Selection modes"
Improved documentation for the aria listbox component. Added an example comparing selectionMode input.

Fixes: #65682
2026-01-12 08:17:11 -08:00
Angular Robot
9333751525 build: update dependency @actions/github to v7
See associated pull request for more information.
2026-01-12 08:16:24 -08:00
Angular Robot
f34eb65f89 build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-12 08:15:55 -08:00
SkyZeroZx
0aaadafc50 refactor(compiler-cli): update error message links to versioned docs (#66374)
Error message links now point to the archived documentation site (v*.angular.dev)
so that referenced content matches the framework version in use.

See angular#44650

PR Close #66374
2026-01-09 22:33:51 +00:00
SkyZeroZx
f4469ad583 refactor(core): update error message links to versioned docs (#66374)
Error message links now point to the archived documentation site (v*.angular.dev)
so that referenced content matches the framework version in use.

See angular#44650

PR Close #66374
2026-01-09 22:33:51 +00:00
Miles Malerba
5671f2cc07
fix(forms): Rename signal form [field] to [formField]
This completes the rename started in #66136. `[field]` is too generic of
a selector for the forms system to own, and likely to cause naming
collisions with existing components. Therefore it is being renamed to
`[formField]`
2026-01-09 14:33:09 -08:00
tomer953
008e20ca56 fix(migrations): prevent duplicate imports in common-to-standalone migration
The common-to-standalone migration did not check for existing imports
when adding needed imports after removing CommonModule. This change adds deduplication
logic to filter out imports that already exist in the imports array
before adding them, ensuring each import appears only once.
2026-01-09 14:30:47 -08:00
Angular Robot
5c16caa95e build: update cross-repo angular dependencies
See associated pull request for more information.
2026-01-09 11:26:15 -08:00