2864 Commits

Author SHA1 Message Date
Angular Robot 829d98e9ae build: update cross-repo angular dependencies to v22.0.7
See associated pull request for more information.
2026-07-15 14:49:17 -07:00
Paweł Maniecki b21d6cdd58 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.

(cherry picked from commit ea83f13388)
2026-07-15 11:55:29 -07:00
Kam ae1d81c8c5 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.

(cherry picked from commit 6a3487f7b7)
2026-07-15 11:54:54 -07:00
Ben Hong 26952902a9 docs: add native html validation clarification in signal forms docs
(cherry picked from commit ca377900a2)
2026-07-14 08:01:07 -07:00
Angular Robot 86b10d7138 build: lock file maintenance
See associated pull request for more information.
2026-07-14 08:00:35 -07:00
Kam d726aa80de 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.

(cherry picked from commit d5e0b131ed)
2026-07-13 14:47:30 -07:00
Matthieu Riegler 7658a81b06 docs: Add mention that about signal narrowing on @switch blocks
(cherry picked from commit d55f5c4ce5)
2026-07-13 12:59:40 -07:00
Kam cc286cee30 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.

(cherry picked from commit f6a00ffde5)
2026-07-13 11:51:01 -07:00
Shuaib Hasan Akib 04b75c1c1f 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.

(cherry picked from commit aca7371431)
2026-07-13 11:50:13 -07:00
Kam 50c0291a74 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.

(cherry picked from commit f94da4d5ca)
2026-07-13 11:48:58 -07:00
Angular Robot cfb77d68d3 docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-07-10 14:24:16 -07:00
Kam e6272f2931 feat(docs-infra): add Angie to the embedded editor error state
When the embedded editor fails to boot the preview sandbox, the error
card showed only a text message. Add the press-kit Error pose above the
message so the failure state matches the mascot treatment already used
for the loading steps and the empty search states.

The card is also centered in the preview pane (previously pinned 5% from
the top) so the pose and message read as one block. Behaviour is
unchanged; this is presentation only.

(cherry picked from commit 72cc548d34)
2026-07-10 11:12:20 -07:00
Kam c42903628e fix(docs-infra): avoid search dialog empty-state flicker while re-querying
The search dialog picked its empty state ("Start typing" vs "No results
found") with `!resultsResource.hasValue()`, which during a re-query looks
identical to a freshly opened dialog since the resource resets its value and
reports `loading`. This flipped the message and mascot back to "Start typing"
mid-search, causing a question -> magnifying-glass -> question flicker on every
keystroke. Add an `emptyState` signal that holds the previous state while a
search is settling, so the dialog only changes once results resolve.

(cherry picked from commit e6378eb330)
2026-07-10 10:58:57 -07:00
Angular Robot ec9b4793e8 build: update cross-repo angular dependencies
See associated pull request for more information.

Closes #69411 as a pr takeover
2026-07-09 16:05:25 -07:00
Michael Small 3a9351f221 docs: remove \'s from schematics helloWorld block
(cherry picked from commit cf6d693985)
2026-07-09 12:23:36 -07:00
franmc01 6fdde4f941 docs: show ng-add schema files in schematics-for-libraries guide
The ng-add walkthrough references two files it never shows: the
collection points to `ng-add/schema.json` and `index.ts` imports its
`Schema` interface from `ng-add/schema.ts`. Add the missing code blocks,
mirroring the generation-support section, so the example is complete.

Fixes #57005

(cherry picked from commit 454af71609)
2026-07-09 12:13:54 -07:00
Kam cd6b903504 feat(docs-infra): add Angie to the embedded editor loading steps
While the embedded editor's preview sandbox boots, the pane shows a plain
text label for each step (Booting, Creating project, Installing packages,
Initializing dev server). Add an Angie pose above the label so the wait
tells a small story. Behaviour is unchanged; this is presentation only.

Poses map to the existing LoadingStep values:
  Starting / Booting / Creating project -> greeting
  Installing packages                   -> coding-01
  Initializing dev server               -> superhero

The mascot sits in a fixed-size box (object-fit: contain) so swapping
poses of different aspect ratios never shifts the label or progress bar.

(cherry picked from commit c92d995260)
2026-07-09 12:00:50 -07:00
Shuaib Hasan Akib 9e13b6126e docs: update ng-content syntax to self-closing tags in content projection and component harnesses guides
(cherry picked from commit 4fc6d6f765)
2026-07-09 11:57:42 -07:00
Shuaib Hasan Akib c0c97b5b22 docs(platform-server): add error reference page for NG05703 and wire up RuntimeError
Add a dedicated error reference page for NG05703 (suspicious URL origin
change during SSR) and update the error to use RuntimeError with a
negative code so the error message automatically includes a link to the
docs page in both dev and production builds.

Update affected tests in url_spec.ts, platform_location_spec.ts, and
integration_spec.ts to match the new NG05703-prefixed error message
format.

Fixes: #69667
(cherry picked from commit 13b6bbd6a0)
2026-07-09 11:56:06 -07:00
Kam d1aaf1a178 feat(docs-infra): add Angie mascot to the not found page
Replaces the plain "Page Not Found" text with the sad Angie mascot
speaking the message from a speech bubble, for a warmer, more on-brand
not-found page. Copy is unchanged and the "Feeling lucky?" search
results are untouched.

The sad pose is added as an SVG asset (cropped tight to the artwork) under
assets/images/angie/. The mascot is decorative (aria-hidden), and it scales
down to stay beside the bubble on mobile.

(cherry picked from commit 3ac2c7b2bc)
2026-07-08 12:45:48 -07:00
franmc01 2cb034ff1d docs: clarify runtime component comparison in elements guide
The popup service example framed the comparison against a vague
'previously you had to define a dynamic component' workflow and pointed
readers at steps no guide describes. Compare against today's
programmatic rendering approach with createComponent instead, which is
what the accompanying example actually uses, and link to the
programmatic rendering guide.

Also remove the note about excluding the component from compilation,
which no longer applies to standalone components.

Fixes #55148

(cherry picked from commit eac04cfb16)
2026-07-08 12:19:59 -07:00
Kam 87ab9f7fa4 feat(docs-infra): add Angie mascot to adev empty and error states
Several adev states show only plain text today. This brings the Angie
mascot into them for warmer, more on-brand empty states, with no change
to copy or behavior:

- Search dialog: a magnifying-glass Angie on "Start typing to see
  results", a questioning Angie on "No results found".
- API reference: a questioning Angie on "No API items found." and on the
  package filter's "No results found".
- Deprecated API pages: the back-turned orthos pose in the shared
  deprecation warning.

The mascots are decorative (aria-hidden) and sized per placement; the
poses are added as SVG assets under assets/images/angie/.

Also moves the Shiki highlighter init in the jsdoc-transforms spec into a
beforeAll, fixing a flake where the spec failed under randomized test
order.

(cherry picked from commit 95fbd0bd48)
2026-07-08 12:18:46 -07:00
Matthieu Riegler 2d52d5384e docs: update optional chaining behavior
+ mention the `$safeNavigationMigration` magic function

(cherry picked from commit 4e4eb6b707)
2026-07-08 10:46:08 -07:00
aparziale 2aa8e68685 docs: add global form state signals to signal forms guide
Add a new section for 'Form State Signals' in the signal forms essential guide. This documents global signals such as dirty(), valid(), invalid(), pending(), and touched() at the form level, as requested in issue #69544.

Fixes #69544

(cherry picked from commit 43996cf748)
2026-07-08 10:42:23 -07:00
SkyZeroZx 748faa4f95 docs(docs-infra): Add build-time validation for API and guide links using route manifest
Adds build-time validation to catch broken, stale, or miscased internal documentation links in both JSDoc and markdown, including `/api/` and `/guide/` URLs and their fragments. Updates the documentation pipeline to share the canonical route manifest, ensuring that all references are checked against the current navigation structure.

(cherry picked from commit c1829f6d7c)
2026-07-08 10:24:51 -07:00
Matthieu Riegler bec1413e7d docs: update formatting
(cherry picked from commit 42862f7df4)
2026-07-08 08:54:22 -07:00
Ambati Mohan Kumar 4314f721e4 docs: fix import of AdminPage in Angular routing documentation. #69670
(cherry picked from commit 95b7385cfb)
2026-07-07 16:46:42 -07:00
Angular Robot f4d20693d5 build: lock file maintenance
See associated pull request for more information.
2026-07-07 13:48:52 -07:00
Ben Hong b9e2465682 docs: add signal forms testing guide
(cherry picked from commit b340e44a86)
2026-07-07 10:03:21 -07:00
Kam e839891a71 fix(docs-infra): disable nav-list tooltip on mobile
On mobile, focusing a long nav item shows a matTooltip that escapes the
drawer, ignores inner scroll, and blocks scrolling while open. Suppress
it on mobile using the existing isMobile helper.

(cherry picked from commit 5ec0b1668b)
2026-07-07 09:54:52 -07:00
Kam 978448dcb6 fix(docs-infra): keep mobile nav open when closing the search dialog
Backdrop clicks on the search dialog were also closing the open mobile nav drawers. Adds an id to `<dialog>` and references it from both navs' `docsClickOutsideIgnore` arrays.

(cherry picked from commit 4b0c066e22)
2026-07-07 09:54:18 -07:00
Ben Hong 46af971454 docs: add composability section to custom controls signal forms
(cherry picked from commit 7dd35913b6)
2026-07-07 09:52:22 -07:00
moraisacr e878d7c8b1 docs(ai-tutor): add troubleshooting for MCP setup issues
(cherry picked from commit e91046ffdb)
2026-07-07 09:37:01 -07:00
Ben Hong 2a05de4851 docs: add signal forms dynamic forms with json guide
Co-authored-by: Matthieu Riegler <kyro38@gmail.com>
(cherry picked from commit d837d6270a)
2026-07-07 09:27:19 -07:00
Hien Pham 64268970e1 docs: enhance readability of utility methods section in testing guide
(cherry picked from commit 1f6b1cee22)
2026-07-07 09:20:27 -07:00
Hien Pham e263ffcf71 docs: improve readability of inject, initTestEnvironment, and resetTestEnvironment descriptions
(cherry picked from commit cfe847eea8)
2026-07-07 09:20:27 -07:00
Jan Pilzer 6dcf7ef453 docs(docs-infra): Social & Theme menu placement
Bottom align menus with trigger buttons
Align height of social link icons

(cherry picked from commit f3e2b6bf6a)
2026-07-07 09:19:47 -07:00
marktechson b7d95d260e docs: updates press kit
Adds a link to Angular's official mascot, Angie! Community members can now have access to Angie for use that falls within the community guidelines.

(cherry picked from commit c587555fdd)
2026-07-07 09:18:59 -07:00
Shuaib Hasan Akib 8e0e92fe18 docs: fix code snippet formatting and highlight lines
Correct a mismatched line highlight in the documentation examples
and convert tags to the preferred self-closing format for consistency.

(cherry picked from commit 81dd9d6091)
2026-07-07 09:15:44 -07:00
SkyZeroZx c1430152bf docs: clarify HttpClient default provider
(cherry picked from commit 901eb4607a)
2026-07-07 09:14:45 -07:00
Shuaib Hasan Akib b706813213 docs: update component and directive decorator examples to use concise syntax
(cherry picked from commit cf70bcfef8)
2026-07-07 09:14:18 -07:00
Angular Robot 6c2b80f4a0 docs: update cross-repo adev docs
Updated Angular adev cross repo docs files.
2026-07-07 09:13:05 -07:00
Sebastian Barfurth a95ac8848a docs: point out interoperability of custom Signal Form controls
Any custom Signal Form control
[will actually work](https://github.com/angular/angular/issues/69074#issuecomment-4601225278)
in both Reactive and Template-Driven form contexts. However, this is not obvious
from reading the docs. This PR points this out very explicitly in both the
migration and custom control guide for Signal Forms.

One notable advantage of this interoperability behavior is the ability to
migrate existing `ControlValueAccessor` controls without breaking users. I've
pointed this out separately.

(cherry picked from commit 19a66dcc15)
2026-07-07 09:11:45 -07:00
arturovt 97197786b3 docs: add NG05200 error reference page for SANITIZATION_UNSAFE_SCRIPT
Adds a reference page for `NG05200`, thrown by `DomSanitizer` when a value is bound to a `<script>` element without being marked trusted via `bypassSecurityTrustScript`. Covers why Angular rejects script content outright, how to reproduce the error, the escape hatch, and the XSS caveat.

(cherry picked from commit 806a3ada26)
2026-07-07 09:09:53 -07:00
Kam 80064128cf docs: fix layout shift when refreshing the stagger example
Clicking "Refresh" toggles the list out of and back into the DOM, but the
`<ul>` lived inside the `@if`, so removing it collapsed the layout and
caused a vertical jump. Wrap the list in a fixed-height `.items-container`
to reserve the space while it re-mounts. Also key the stagger delay off
`$index` so the first item animates immediately instead of being delayed a
step.

(cherry picked from commit cd8351a3af)
2026-07-06 14:04:50 -07:00
Kam a057320c91 docs: use descriptive link text for the AI overview page link
The link on the "develop with AI" page wrapped the verb phrase "to check
out the overview page" in the link text, burying the destination in a
call-to-action. Per the adev writing guide's descriptive-link-text rule,
link only the noun that names the destination.

Change the link text to "overview page" so it clearly indicates where the
link goes.

(cherry picked from commit 42fc9a4599)
2026-07-06 14:04:14 -07:00
Kam 371183db06 fix(docs-infra): lock background scroll while the search dialog is open
The search dialog (Cmd/Ctrl+K) opens as a native modal via `showModal()`, but the
page behind it stayed scrollable, so scrolling drifted the underlying content
beneath the blurred backdrop.

`body` already reserves a stable scrollbar gutter, so setting `overflow: hidden`
while the dialog is open blocks background scrolling with no layout shift. The rule
keys off the dialog's `[open]` state, so it restores automatically on every close
path (Escape, click-outside, navigation) with no script involved.

(cherry picked from commit 551cb3b8b5)
2026-07-06 13:48:57 -07:00
Kam 25542a2d2d fix(docs-infra): restyle prefer/avoid code block headers
The "Prefer" / "Avoid" code block headers rendered the style label as
plain inline text joined to the title with a bare "-" separator, giving
the two block types little visual distinction. The taller label also left
the prefer/avoid header at a different height from the plain filename
header, so the copy button's single "top" value could not center it in
both.

Style the label as a small uppercased pill tinted with the block's style
color, drop the "-" separator, add a subtle inset accent under the header,
and swap the heavier "dangerous" icon on "Avoid" for "close". Give every
header a fixed height with box-sizing: border-box and vertically center
its contents so all variants render at the same height and the copy button
stays centered.

This supersedes #69638, folding in its centering fix for the copy button
offset that #69030 introduced.

(cherry picked from commit 95a953145e)
2026-07-06 13:48:18 -07:00
Shuaib Hasan Akib 3aa7424cdd docs: fix broken ordered list in NG0912 error page
Fenced code blocks between list items in NG0912.md were not indented,
causing Marked.js to treat them as top-level block elements that
interrupt the list. This resulted in two separate <ol> elements being
rendered instead of one.

Indent the code blocks by 4 spaces so they are treated as continuation
content of their list items, and change the second `1.` to `2.` for
correctness.

(cherry picked from commit 9153515422)
2026-07-06 13:47:28 -07:00
Kam 6165aedc12 fix(docs-infra): prevent tab labels from being clipped
The active docs tab applied a 2px bottom border that inactive tabs lacked,
which shrank the active label's content box and clipped its descenders. It
also set `line-height: 1.5` only on the active label, so switching tabs
nudged the text. Reserve the border as transparent on every tab and recolor
it on the active one, and share the label `line-height`, so the letters are
no longer cut and the label stays put when switching.

(cherry picked from commit 12a4e60a4a)
2026-07-06 13:46:44 -07:00