# Features

### Catalog Support

This library supports the default [glchat\_standard\_catalog\_definition.json](https://github.com/GDP-ADMIN/glchat-sdk/blob/main/js/glchat-a2ui-react-renderer/json/glchat_standard_catalog_definition.json), which extends the [official A2UI catalog](https://github.com/google/A2UI/blob/main/specification/v0_8/json/standard_catalog_definition.json). You can review a sample of supported messages in [a2ui-sample-message.json](https://github.com/GDP-ADMIN/glchat-sdk/blob/main/js/glchat-a2ui-react-renderer/json/a2ui-sample-messages.json).

{% hint style="info" %}
Note that agents generating A2UI messages need to combine the catalog definition with the [protocol instructions](https://github.com/google/A2UI/blob/main/specification/v0_8/json/server_to_client.json) to produce valid A2UI messages.
{% endhint %}

### Rendering Pipeline

This library provides a single, end-to-end rendering flow for A2UI in React.

* Parses the incoming messages (JSON/JSONL)
* Dispatch them through a processor
* Buffers component updates for progressive rendering
* Resolves data bindings
* Outputs renderable "surfaces" that you mount in your app using **A2UISurface** component.

### User Interactions

Captures user actions (e.g. button clicks) and return them via events.

### Customization

Supports **component customization** through catalog and **styling customization** via CSS classes, CSS variables, and theme overrides.
