Installation
Detailed setup guide for @ngaf/chat.
#Requirements
@ngaf/chat uses Angular Signals, the input() function, and contentChildren(). Angular 20 or later is required.
Required for the build toolchain and package installation.
#Install the package
marked is required for parsing assistant markdown. Beyond that: the chat components ship with their own design tokens and component-encapsulated styles. No PostCSS config, no global stylesheet import, no Tailwind required.
#Peer Dependencies
@ngaf/chat declares the following peer dependencies:
| Package | Version | Required |
|---|---|---|
@angular/core | ^20.0.0 || ^21.0.0 | Yes |
@angular/common | ^20.0.0 || ^21.0.0 | Yes |
@angular/forms | ^20.0.0 || ^21.0.0 | Yes |
@angular/platform-browser | ^20.0.0 || ^21.0.0 | Yes |
@ngaf/licensing | * | Yes |
@ngaf/render | * | Yes |
@ngaf/a2ui | * | Yes |
@json-render/core | ^0.16.0 | Yes |
@langchain/core | ^1.1.33 | Yes |
rxjs | ~7.8.0 | Yes |
marked | ^15.0.0 || ^16.0.0 | Yes |
@cacheplane/partial-json is installed by @ngaf/chat for streaming JSON parsing.
marked parses AI message content into HTML (headings, code blocks, tables, lists). It is a required peer; the library ships a defensive plain-text fallback for resilience, but the rendered output is unusable without marked installed.
#Configure provideChat() (optional)
Add provideChat() alongside your agent provider to register CHAT_CONFIG for global chat configuration:
provideChat() is optional - chat components fall back to sensible defaults.
#Theming
The chat ships with a complete light/dark token system. Three ways to customize:
#1. Override a single token at app root
#2. Force a theme via attribute
#3. Deep override via the optional global stylesheet
See Theming for the full token reference.