You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"description": "Returns a new model with the key at `pointer` removed.\n\nEmpty string and `/` clear the whole model. Missing parent paths leave the\ninput model unchanged.",
"description": "Reads a value from a model using the package's simple slash-separated pointer syntax.\n\nEmpty string and `/` target the root. Segments are not RFC 6901-unescaped;\nnormalize keys before using pointers that would require `~0` or `~1`.",
"description": "Returns true when `value` is an A2UI boolean literal wrapper.",
947
953
"signature": "isLiteralBoolean(value: unknown): value is { literalBoolean: boolean }",
948
954
"params": [
949
955
{
@@ -962,7 +968,7 @@
962
968
{
963
969
"name": "isLiteralNumber",
964
970
"kind": "function",
965
-
"description": "",
971
+
"description": "Returns true when `value` is an A2UI number literal wrapper.",
966
972
"signature": "isLiteralNumber(value: unknown): value is { literalNumber: number }",
967
973
"params": [
968
974
{
@@ -981,7 +987,7 @@
981
987
{
982
988
"name": "isLiteralString",
983
989
"kind": "function",
984
-
"description": "",
990
+
"description": "Returns true when `value` is an A2UI string literal wrapper.",
985
991
"signature": "isLiteralString(value: unknown): value is { literalString: string }",
986
992
"params": [
987
993
{
@@ -1000,7 +1006,7 @@
1000
1006
{
1001
1007
"name": "isPathRef",
1002
1008
"kind": "function",
1003
-
"description": "",
1009
+
"description": "Returns true when `value` is an A2UI dynamic path reference.",
1004
1010
"signature": "isPathRef(value: unknown): value is { path: string }",
1005
1011
"params": [
1006
1012
{
@@ -1019,7 +1025,7 @@
1019
1025
{
1020
1026
"name": "resolveDynamic",
1021
1027
"kind": "function",
1022
-
"description": "",
1028
+
"description": "Resolves an A2UI dynamic value against a client data model.\n\nLiteral wrappers unwrap to their inner values, `{ path }` references read\nfrom the model by JSON-pointer path, arrays resolve recursively, and\nunrecognized plain values pass through unchanged.",
{"surfaceUpdate":{"surfaceId":"booking","components":[{"id":"root","component":{"Column":{"children":{"explicitList":["title","origin","submit"]}}}},{"id":"title","component":{"Text":{"text":"Book a flight","usageHint":"h2"}}},{"id":"origin","component":{"MultipleChoice":{"label":"Origin","options":[{"label":"LAX","value":"LAX"},{"label":"JFK","value":"JFK"}],"selections":{"path":"/origin"},"maxAllowedSelections":1}}},{"id":"submit_label","component":{"Text":{"text":"Search flights"}}},{"id":"submit","component":{"Button":{"child":"submit_label","primary":true,"action":{"name":"bookingSubmit","context":[{"key":"origin","value":{"path":"/origin"}},{"key":"dest","value":{"path":"/dest"}}]}}}}]}}
31
+
{"surfaceUpdate":{"surfaceId":"booking","components":[{"id":"root","component":{"Column":{"children":{"explicitList":["title","origin","submit"]}}}},{"id":"title","component":{"Text":{"text":{"literalString":"Book a flight"},"usageHint":"h2"}}},{"id":"origin","component":{"MultipleChoice":{"label":{"literalString":"Origin"},"options":[{"label":{"literalString":"LAX"},"value":"LAX"},{"label":{"literalString":"JFK"},"value":"JFK"}],"selections":{"path":"/origin"},"maxAllowedSelections":1}}},{"id":"submit_label","component":{"Text":{"text":{"literalString":"Search flights"}}}},{"id":"submit","component":{"Button":{"child":"submit_label","primary":true,"action":{"name":"bookingSubmit","context":[{"key":"origin","value":{"path":"/origin"}},{"key":"dest","value":{"path":"/dest"}}]}}}}]}}
Copy file name to clipboardExpand all lines: apps/website/content/docs/a2ui/guides/message-protocol.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ Every envelope carries that `surfaceId`. A `dataModelUpdate` for `"booking"` onl
15
15
As an **id-keyed adjacency list**. A `surfaceUpdate` carries a flat `components` array. Each entry has an `id` and a single `component` definition. Parent-child links are by id reference, not by nesting.
16
16
17
17
```json
18
-
{"surfaceUpdate":{"surfaceId":"booking","components":[{"id":"root","component":{"Column":{"children":{"explicitList":["title","origin","submit"]}}}},{"id":"title","component":{"Text":{"text":"Book a flight","usageHint":"h2"}}}]}}
18
+
{"surfaceUpdate":{"surfaceId":"booking","components":[{"id":"root","component":{"Column":{"children":{"explicitList":["title","origin","submit"]}}}},{"id":"title","component":{"Text":{"text":{"literalString":"Book a flight"},"usageHint":"h2"}}}]}}
19
19
```
20
20
21
21
The `component` value is a **keyed union**: a single-key object where the key names the component type and the value holds its props — `{ "<Name>": { props } }`. `{ "Text": { ... } }` is a Text, `{ "Column": { ... } }` is a Column. There's no separate `type` field; the key *is* the type.
@@ -69,7 +69,7 @@ The stream is a sequence of single-key envelope objects. The parser recognizes e
69
69
Defines (or replaces) the components for a surface.
Copy file name to clipboardExpand all lines: libs/render/README.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,17 +17,19 @@
17
17
## What it does
18
18
19
19
- Renders a JSON spec tree to Angular components via a named view registry (`<render-spec>`) or a single node (`<render-element>`).
20
-
- Registry composition utilities (`views`, `withViews`, `withoutViews`) let you build, extend, and trim registries without mutation.
20
+
- Registry composition utilities (`views`, `withViews`, `overrideViews`, `withoutViews`) let you build, extend, replace, and trim registries without mutation.
21
21
- Signal-based state store (`signalStateStore`) and per-component fallback support keep UI consistent during streaming.
0 commit comments