2916 Commits

Author SHA1 Message Date
lazerg 6f86d666ca docs: fix supported Node.js version in installation prerequisites
(cherry picked from commit 96b80424c7)
2026-08-04 17:31:07 +00:00
Angular Robot 6c6f3d346f build: lock file maintenance
See associated pull request for more information.
2026-08-04 08:26:26 -07:00
Kam baff4d07aa fix(docs-infra): keep inline code in links as an atomic inline box
Inline code inside a link renders as a chip with its own background. Text
decoration propagates from the anchor and cannot be cancelled by a descendant,
so with the chip laid out as a regular inline box the link underline is drawn
straight across it.

Lay the chip out as an atomic inline box, which the propagated decoration is not
drawn across. This applies to the link rule only; code outside of links keeps
`display: inline` for wrapping in multiline paragraphs, and the link rule
already sets `white-space: nowrap`.

(cherry picked from commit efe1aae1cd)
2026-08-03 16:20:18 +00:00
Kam 79a819379f docs: fix roadmap link text and preview-site link
Two link issues on the roadmap page:

- "Introduce deferred loading" linked next.angular.dev, the preview build of
  this same site, for a page that exists here at guide/templates/defer. Use the
  relative path so readers stay on the stable docs.
- "Local template variables" linked "`@let` docs", putting a code chip and a
  plain word in one anchor. The anchor's underline crosses the chip and the two
  halves render in different colors. Link only the symbol, as the rest of adev
  does.

Also on the same page:

- Drop a stray space before a period in the Components card.
- Give the older completion labels the same "Completed in <quarter>" wording the
  newer cards already use.

(cherry picked from commit f2f12925bd)
2026-08-03 15:58:40 +00:00
Kam d6ec7c7c30 docs: document deprecated allowSignalWrites option in v19 update guide
The `allowSignalWrites` option of `effect()` became a no-op and was
deprecated in v19, but the update guide never mentioned it. Applications
upgrading from v18 or earlier still carry the option at their `effect()`
call sites, where it now only produces a dev-mode warning.

Add an entry to the v19 recommendations instructing those applications to
remove it, mirroring the wording of the deprecation notice on
`CreateEffectOptions`.

(cherry picked from commit 690eecda6b)
2026-07-31 15:40:00 +00:00
Markus Mächler 8c6f5e7c30 docs: remove duplicate aria-hidden attributes in aria examples
(cherry picked from commit a37c79d7d4)
2026-07-30 22:22:18 +00:00
Kam 489fdb0da3 docs: fix self-referential link and merge intro tips in inputs guide
The "Customizing model inputs" section linked "standard input" back to
the inputs guide itself, a dead-end self-link. Point the sentence at the
relevant in-page sections instead (#required-inputs and #input-aliases).

Also merge the two stacked intro TIP callouts into a single tip.

(cherry picked from commit 5dd634d18d)
2026-07-30 22:20:45 +00:00
Angular Robot d107bcad3c build: update cross-repo angular dependencies
See associated pull request for more information.

Closes #69911 as a pr takeover
2026-07-30 10:04:35 -07:00
Aristeidis Bampakos 01eeee4bd1 docs: replace Firebase Studio references with Antigravity
(cherry picked from commit a0f943d53d)
2026-07-30 16:58:10 +00:00
splincode deecb301c8 fix(core): warn when style property bindings receive invalid values
Report unsupported style property binding values in development mode while preserving existing binding behavior. Unwrap trusted style values before appending unit suffixes and link NG0318 warnings to the corresponding error guide.

(cherry picked from commit e43eb96341)
2026-07-30 16:05:51 +00:00
Kam a956409d90 docs: update outdated and broken external links in adev
Several external links pointed at locations that have moved or gone away:

- ng-packagr, webpack, and node-glob renamed their default branch from
  master to main, so the deep links into those repos redirect.
- The npm package pages moved from npmjs.org to www.npmjs.com.
- The Angular Material and CDK docs moved from material.angular.io to
  material.angular.dev.
- The semver reference pointed at the defunct semver.io service; point it
  at the SemVer spec at semver.org instead.
- The MDN animationiteration event link had a typo (animationitration).
- compiler-cli's metadata/schema.ts was removed after v12; pin the link to
  the 12.2.x tag where the file still exists.
- The angularindepth.com article is gone (its domain is parked); link to its
  live home on the Angular In Depth Medium publication.
- Google moved the Lighthouse user-timing docs to developer.chrome.com.

Point the links at their current, working locations.

(cherry picked from commit 058c7f9b0c)
2026-07-30 15:43:39 +00:00
Angular Robot a80ff5500c docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-07-30 08:37:19 -07:00
lazerg c4b1432129 docs: document overlay stacking change in v21 update guide
(cherry picked from commit ae303c4a05)
2026-07-30 15:22:09 +00:00
Kam 7825e607c8 docs: invoke signal inputs in adev examples and tutorials
Several adev example and tutorial files read a signal input as a bare
reference (this.foo) instead of invoking it (this.foo()). Because an
InputSignal is a function object, the bare reference is always truthy
and never yields the underlying value, so the surrounding guard or
binding silently did the wrong thing:

- animations open-close(.1/.3): the `!this.logging` guard in
  onAnimationEvent was always false, so the early return never fired.
- form-validation forbidden-name.directive: the `this.forbiddenName`
  ternary condition was always truthy, so validation ran even when no
  forbidden name was configured.
- first-app steps 12 and 14 housing-location: `housingLocation.photo`
  read `.photo` off the signal function (undefined), leaving the
  listing image src empty.

Invoke the signals so the examples reflect correct signal-input usage.

(cherry picked from commit 0d26130a4c)
2026-07-29 09:59:22 -07:00
Kam fcaf15a0a4 fix(docs-infra): fix undefined CSS custom properties in shared-docs styles
Two custom properties in the shared-docs styles reference tokens that are
defined nowhere, so the declarations are invalid at computed-value time.

_kbd.scss sets the <kbd> text color with var(---tertiary-contrast); the extra
leading dash points at an undefined property with no fallback, so the color
resolves to the inherited value instead of the intended --tertiary-contrast.

_colors.scss builds --light-pink-to-light-purple-horizontal-gradient from
var(--light-purple), which is not defined anywhere (the sibling token is
--light-violet, defined in the same file), invalidating the gradient. The
gradient is not currently referenced, so this corrects a latent malformed
declaration rather than a visible bug.

Point both at the defined tokens: --tertiary-contrast and --light-violet.

(cherry picked from commit e70994bdc3)
2026-07-29 09:44:41 -07:00
SkyZeroZx 2591fa6bd9 docs: clarify behavior of credentials option during SSR on Node.js
(cherry picked from commit 90ac011fa9)
2026-07-29 09:41:33 -07:00
Kam a7d67f9ccc fix(docs-infra): fix malformed --webgl-page-background declaration
In the light theme block of _colors.scss, --webgl-page-background and
--webgl-gray-unfilled were written on a single line without a separating
semicolon, and --webgl-page-background wrapped --page-background in an
invalid nested var(). As a result --webgl-page-background got a garbage
value and --webgl-gray-unfilled was never defined in the light theme.

Split them into two well-formed declarations and drop the nested var(),
matching the structure already used in the dark theme block.

(cherry picked from commit 91822538fe)
2026-07-29 09:04:14 -07:00
Kam 9658ad0ca8 fix(docs-infra): define missing win95 variables in aria autocomplete examples
The retro-themed aria autocomplete examples style the clear button with
var(--win95-gray), var(--win95-dark-gray), var(--win95-light), and
var(--win95-shadow), but none of the three example stylesheets defines
those custom properties. The variables resolve to nothing, so the button
falls back to inherited theme colors — color: var(--win95-shadow) becomes
the light-theme text color in dark mode, leaving the button unreadable.

Define the four variables in :host of each example, matching the values
already used by the sibling aria tree examples, so the clear button keeps
its Windows 95 look in both light and dark themes.

(cherry picked from commit 8cd4c89c29)
2026-07-29 09:02:58 -07:00
Kam f5a968b003 fix(docs-infra): replace undefined --gray-50 in retro aria examples
The retro variants of the toolbar, select, and multiselect aria examples
tint the pressed button background with
color-mix(in srgb, var(--retro-button-color) 60%, var(--gray-50)), but
--gray-50 is defined nowhere. Per the CSS spec, a var() with no fallback
pointing at an undefined property invalidates the whole color-mix(), so the
declaration is dropped and the pressed-state tint never applies.

Define a local --retro-pressed-tint token in each example's :host (#fbfbfb,
the value $gray-50 resolved to) with a :host-context(.docs-dark-mode) override
to #151417, and use it for the pressed-state mix. This keeps the example
self-contained rather than depending on adev's global token scope, while
staying theme-aware in both light and dark, following the same token-flipping
pattern used in code-editor.component.scss.

(cherry picked from commit 48c1e5bb0f)
2026-07-29 09:00:00 -07:00
Angular Robot 77c5815faf build: lock file maintenance
See associated pull request for more information.
2026-07-29 08:47:16 -07:00
Alan Agius f6fa9eca7d docs: update default value for strictTemplates
Updates the strictTemplates documentation in Angular compiler options to note that the default is true, replacing the reference to the obsolete ng new --strict flag.

(cherry picked from commit 2bcd12a6a5)
2026-07-29 08:42:16 -07:00
Ben Hong b2978dbfe1 docs: modernize directives guides (#69822)
Co-authored-by: Matthieu Riegler <kyro38@gmail.com>

PR Close #69822
2026-07-24 10:36:59 -07:00
Ben Hong 522041cefe docs: smooth out directives guide narrative flow (#69822)
PR Close #69822
2026-07-24 10:36:59 -07:00
Kam 125a794891 docs: use https for external links in adev
Several guides, examples, and the update-guide recommendations linked to
external resources over insecure http. Switch them to https.

(cherry picked from commit 28d59e8d63)
2026-07-24 08:28:12 -07:00
mfstapert 50f990a67a docs: update attribute testing guide to include canonical example with local component
(cherry picked from commit 738b8fe9d2)
2026-07-24 08:27:20 -07:00
Jens Kuehlers 2562246429 docs: add v23 release and change to yearly release cycle
## Summary

This PR adds v22.x and v23 release dates. It also changes Angular's release cadence to a yearly cycle.

## Why we are making this change

The community has long requested less frequent major releases due to the impact of breaking changes and upgrades for their projects as well as for enterprise customers. Additionally, a longer release cycle provides increased API stability for developers using agentic workflows, while still delivering a reasonable cadence of API upgrades and migrations.

(cherry picked from commit 25dbe79507)
2026-07-24 08:26:37 -07:00
Kam ab52df470a fix(docs-infra): fail the guide build when a markdown file starts with a BOM
A leading UTF-8 byte order mark (U+FEFF) before the first `#` stops the
Markdown parser from recognizing the heading, so the guide renders its
title as a paragraph and drops the standard docs header. The character
is invisible, so it cannot be caught in review.

Add a check in the guides generation pipeline that throws when a source
file starts with a BOM, failing the build with the offending file name.
This sits alongside the existing unknown-anchor check and prevents the
regression fixed in #69889 from recurring.
2026-07-22 14:26:19 +02:00
Kam f12db89659 docs: fix first heading rendering as paragraph on two template guides
The ng-container and binding template guide files each began with a
UTF-8 BOM (EF BB BF) before the leading `#`. The docs markdown parser
only promotes `#` to an H1 when it is the first character on the line,
so the BOM demoted the title to paragraph text (`<p># ...</p>`) and the
standard docs header (breadcrumbs, page title, edit button) never
rendered.

Stripping the BOM restores `#` as the first character, so both pages
now generate the proper `<header class="docs-header">` block. Verified
by rebuilding //adev/src/content/guide/templates:templates and
inspecting the generated HTML.

Fixes #69889
2026-07-22 14:26:19 +02:00
Kam 6557df5dbe docs: update stale Twitter reference to X in the URL matcher guide
Twitter is now X. In the custom-route-matcher guide, point the author-credit
link at x.com and refer to an "X (formerly Twitter) handle" (clarified once,
then "X handle"), matching the "X (formerly Twitter)" wording already used in
the footer, navigation, and update guide.
2026-07-22 12:01:16 +02:00
Nikita Barsukov cb1841d10b docs: outdated section in the Signal Forms | Custom controls page 2026-07-22 12:00:06 +02:00
SkyZeroZx d955d67b57 docs: clarify usage of 'same-origin' mode and add SSR considerations 2026-07-22 11:58:56 +02:00
SkyZeroZx 6ac3e26fe0 docs: clarify pipe usage to avoid DI misuse 2026-07-22 11:50:12 +02:00
Kam 8422da814d feat(docs-infra): react with Angie in the playground minigame
The angle-guessing minigame's result popup personifies your score with a
hand-drawn stick-figure that changes expression by accuracy. Now that Angie
appears across adev — the 404 page, docs search, the embedded editor, the
tutorial intros and completions — give the minigame the same treatment so
its result feels consistent with the rest of the docs.

Replace the result reactor's stick-figure illustration with an Angie pose
keyed to accuracy (seven tiers, superhero down to angry). She is revealed
once the accuracy counter finishes counting up, popping in beside a speech
bubble that carries the round's existing quote. The result popup is widened
so Angie and the bubble sit side by side, and the share link is moved from
twitter.com to x.com.

This removes the previous hand-drawn stick-figure result art. NG the Angle,
the interactive character in the play area, is unchanged.
2026-07-21 17:19:58 +02:00
Angular Robot 791b0646c8 build: update all non-major dependencies
See associated pull request for more information.
2026-07-21 17:17:43 +02:00
Angular Robot 22aecf5ed9 build: update cross-repo angular dependencies
See associated pull request for more information.
2026-07-21 13:28:27 +02:00
Kam d2c0e1ec77 feat(docs-infra): bookend the tutorials with Angie
The tutorial intro and "next steps" pages were plain headings with no
send-off. Bookend each tutorial with Angie: a greeting pose welcoming
learners on the intro page, and a superhero pose congratulating them on
the completion page, each beside a speech bubble.

The bubble treatment from the 404 page lived inside the not-found
component, so it's extracted into a reusable docs-content style
(docs-tutorial-mascot) usable from tutorial markdown, and applied to the
intro and completion pages of the Learn Angular, Signals, and Signal
Forms tutorials.
2026-07-21 11:03:21 +02:00
Angular Robot 3c9820f3e0 build: lock file maintenance
See associated pull request for more information.
2026-07-21 10:58:37 +02:00
Kam 79fe1c3a05 fix(docs-infra): only claim a search on the 404 page when results exist
The "Page Not Found" page always rendered the sentence "We have
initiated a search for the term extracted from the URL", but the
NotFound component only runs a search when a term can be extracted,
and only renders results when there is at least one hit. On a 404
with no extractable term or no matching results, the page asserted
a search it never backed up.

Gate the sentence behind the same searchResults() check that guards
the results list, so the empty state simply reads "We couldn't find
what you were looking for."
2026-07-20 16:04:29 +02:00
Kam d6cad90b3a docs: fix broken link to Angular AI Skills page
The MCP server setup guide linked to /ai/skills, which 404s. The
page lives at /ai/agent-skills. Update the link to point to the
correct route.

Fixes #69838
2026-07-20 11:50:35 +02:00
Kam f032f5ac1f docs: document the inlineStyleLanguage workspace config option
The `inlineStyleLanguage` build option has existed since v12 but was
never listed in the workspace configuration reference. Add it to the
"Extra build and test options" table alongside the other style options,
documenting its accepted values (css, less, sass, scss) and default.

Fixes #69801
2026-07-20 11:21:44 +02:00
Angular Robot f034c02e67 build: update cross-repo angular dependencies to v22.1.0-next.4
See associated pull request for more information.
2026-07-15 14:49:48 -07:00
Paweł Maniecki ea83f13388 docs: update "browser set" links to avoid bad redirect
"Supported browsers" page got moved from
https://web-platform-dx.github.io/web-features/supported-browsers to https://web-platform-dx.github.io/supported-browsers/

There's a redirect in place, but it drops the query parameter with the date, so all versions link to the current browser set.
2026-07-15 11:55:24 -07:00
Kam 6a3487f7b7 feat(docs-infra): greet visitors with Angie in the cookie popup
The cookie consent popup showed only text and two buttons. Add the
Angie greeting pose to it so the first thing a new visitor sees carries
the same mascot treatment already used across the docs (the 404 page,
empty search results, the preview error state).

The message and mascot sit in a flex header row; the two action buttons
now share the row equally so they fill the card instead of leaving a
trailing gap. Layout only, the consent behaviour is unchanged.
2026-07-15 11:54:50 -07:00
Ben Hong ca377900a2 docs: add native html validation clarification in signal forms docs 2026-07-14 08:01:03 -07:00
Angular Robot 2732c5f63c build: lock file maintenance
See associated pull request for more information.
2026-07-14 07:59:16 -07:00
Kam d5e0b131ed feat(docs-infra): show Angie in the error snack bar
The error snack bar (the chunk-load reload prompt and the embedded
editor's memory / mobile alerts) showed only text and an action button.
Add an Angie press-kit pose to the left of the message so the failure
state matches the mascot treatment already used for the preview error
card and the empty search states.

The pose is data-driven: ErrorSnackBarData gains a required `pose` field
so each caller picks the mascot that fits the message tone (`greeting`
for the docs-updated reload prompt and the mobile notice, `error` for
the out-of-memory warning). The message moves into a `<p>` that flexes
to fill the row, keeping the action button aligned to the right.

Presentation only; when and why the snack bar appears is unchanged.
2026-07-13 14:47:26 -07:00
Matthieu Riegler d55f5c4ce5 docs: Add mention that about signal narrowing on @switch blocks 2026-07-13 12:59:36 -07:00
Kam f6a00ffde5 docs(docs-infra): remove orphaned IDX config left behind by #68946
PR #68946 removed the "Open in Firebase Studio" (Project IDX) launcher
from the embedded editor, but left its supporting configuration behind:
a per-tutorial `idx/dev.nix` workspace file in seven tutorials, plus an
`'idx'` entry in `excludeFromRoot` whose only job was to keep those
folders out of the StackBlitz/download bundle.

With the launcher gone nothing reads these files anymore, so remove the
seven `dev.nix` configs and the now-dead `'idx'` exclude entry.
2026-07-13 11:50:57 -07:00
Shuaib Hasan Akib aca7371431 fix(docs-infra): don't show $ prompt on empty lines
Fenced shell code blocks prepended a `$` prompt to every rendered line  via a CSS `::before`, including blank lines are not commands to run.
2026-07-13 11:50:09 -07:00
Kam f94da4d5ca fix(docs-infra): render the Console tab error badge in the embedded editor
The Console tab's error-count badge lives in an `<ng-template
mat-tab-label>`, but the component didn't import `MatTabLabel`, so
Material ignored the templated label and fell back to the plain
"Console" text. Import it so the badge renders when there are errors.
2026-07-13 11:48:54 -07:00