@a2ui/angular 0.8.2 → 0.9.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +203 -0
  2. package/README.md +111 -3
  3. package/fesm2022/a2ui-angular-src-v0_8.mjs +1797 -0
  4. package/fesm2022/a2ui-angular-src-v0_8.mjs.map +1 -0
  5. package/fesm2022/a2ui-angular-src-v0_9.mjs +2330 -0
  6. package/fesm2022/a2ui-angular-src-v0_9.mjs.map +1 -0
  7. package/fesm2022/a2ui-angular-v0_8.mjs +1797 -0
  8. package/fesm2022/a2ui-angular-v0_8.mjs.map +1 -0
  9. package/fesm2022/a2ui-angular-v0_9.mjs +2330 -0
  10. package/fesm2022/a2ui-angular-v0_9.mjs.map +1 -0
  11. package/fesm2022/a2ui-angular.mjs +1558 -616
  12. package/fesm2022/a2ui-angular.mjs.map +1 -1
  13. package/package.json +51 -7
  14. package/types/a2ui-angular-src-v0_8.d.ts +400 -0
  15. package/types/a2ui-angular-src-v0_9.d.ts +813 -0
  16. package/types/a2ui-angular-v0_8.d.ts +400 -0
  17. package/types/a2ui-angular-v0_9.d.ts +813 -0
  18. package/types/a2ui-angular.d.ts +362 -35
  19. package/fesm2022/a2ui-angular-audio-DoZb9mn_.mjs +0 -48
  20. package/fesm2022/a2ui-angular-audio-DoZb9mn_.mjs.map +0 -1
  21. package/fesm2022/a2ui-angular-button-CvH0kAtN.mjs +0 -61
  22. package/fesm2022/a2ui-angular-button-CvH0kAtN.mjs.map +0 -1
  23. package/fesm2022/a2ui-angular-card-Ix6OIdUv.mjs +0 -48
  24. package/fesm2022/a2ui-angular-card-Ix6OIdUv.mjs.map +0 -1
  25. package/fesm2022/a2ui-angular-checkbox-BN4EF2Ci.mjs +0 -78
  26. package/fesm2022/a2ui-angular-checkbox-BN4EF2Ci.mjs.map +0 -1
  27. package/fesm2022/a2ui-angular-datetime-input-dmZAjvrF.mjs +0 -120
  28. package/fesm2022/a2ui-angular-datetime-input-dmZAjvrF.mjs.map +0 -1
  29. package/fesm2022/a2ui-angular-divider-BizPl3qL.mjs +0 -30
  30. package/fesm2022/a2ui-angular-divider-BizPl3qL.mjs.map +0 -1
  31. package/fesm2022/a2ui-angular-icon-BE9Hj9V6.mjs +0 -48
  32. package/fesm2022/a2ui-angular-icon-BE9Hj9V6.mjs.map +0 -1
  33. package/fesm2022/a2ui-angular-image-BWzAw0rh.mjs +0 -54
  34. package/fesm2022/a2ui-angular-image-BWzAw0rh.mjs.map +0 -1
  35. package/fesm2022/a2ui-angular-list-nEeT59V3.mjs +0 -45
  36. package/fesm2022/a2ui-angular-list-nEeT59V3.mjs.map +0 -1
  37. package/fesm2022/a2ui-angular-modal-mr9LmczA.mjs +0 -108
  38. package/fesm2022/a2ui-angular-modal-mr9LmczA.mjs.map +0 -1
  39. package/fesm2022/a2ui-angular-multiple-choice-Bry7X74i.mjs +0 -78
  40. package/fesm2022/a2ui-angular-multiple-choice-Bry7X74i.mjs.map +0 -1
  41. package/fesm2022/a2ui-angular-slider-BgseUbN2.mjs +0 -79
  42. package/fesm2022/a2ui-angular-slider-BgseUbN2.mjs.map +0 -1
  43. package/fesm2022/a2ui-angular-tabs-q5Mn9vgq.mjs +0 -87
  44. package/fesm2022/a2ui-angular-tabs-q5Mn9vgq.mjs.map +0 -1
  45. package/fesm2022/a2ui-angular-text-field-Deokh07j.mjs +0 -85
  46. package/fesm2022/a2ui-angular-text-field-Deokh07j.mjs.map +0 -1
  47. package/fesm2022/a2ui-angular-video-DuFTfN0B.mjs +0 -48
  48. package/fesm2022/a2ui-angular-video-DuFTfN0B.mjs.map +0 -1
@@ -0,0 +1,400 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Type, Binding, InjectionToken, EnvironmentProviders } from '@angular/core';
3
+ import { Subject, Observable } from 'rxjs';
4
+ import * as WebCore from '@a2ui/web_core/v0_8';
5
+ import * as _a2ui_web_core from '@a2ui/web_core';
6
+ import * as Primitives from '@a2ui/web_core/types/primitives';
7
+
8
+ /**
9
+ * Centralized namespace for v0.8 renderer types.
10
+ * Standardizes on the `...Node` suffix for component types and provides
11
+ * resolved variants for property binding.
12
+ */
13
+ declare namespace Types {
14
+ type Action = WebCore.Action;
15
+ type FunctionCall = unknown;
16
+ type SurfaceID = string;
17
+ type StringValue = WebCore.StringValue;
18
+ type BooleanValue = WebCore.BooleanValue;
19
+ type NumberValue = WebCore.NumberValue;
20
+ type Surface = WebCore.Surface;
21
+ type A2UIClientEventMessage = WebCore.A2UIClientEventMessage;
22
+ type ClientToServerMessage = A2UIClientEventMessage;
23
+ type ServerToClientMessage = WebCore.ServerToClientMessage;
24
+ interface Component<P = Record<string, unknown>> {
25
+ id: string;
26
+ type: string;
27
+ properties: P;
28
+ }
29
+ type AnyComponentNode = WebCore.AnyComponentNode;
30
+ type CustomNode = WebCore.CustomNode;
31
+ type Theme = WebCore.Theme;
32
+ type RowNode = WebCore.RowNode;
33
+ type ColumnNode = WebCore.ColumnNode;
34
+ type TextNode = WebCore.TextNode;
35
+ type ListNode = WebCore.ListNode;
36
+ type ImageNode = WebCore.ImageNode;
37
+ type IconNode = WebCore.IconNode;
38
+ type VideoNode = WebCore.VideoNode;
39
+ type AudioPlayerNode = WebCore.AudioPlayerNode;
40
+ type ButtonNode = WebCore.ButtonNode;
41
+ type DividerNode = WebCore.DividerNode;
42
+ type MultipleChoiceNode = WebCore.MultipleChoiceNode;
43
+ type TextFieldNode = WebCore.TextFieldNode;
44
+ type CheckboxNode = WebCore.CheckboxNode;
45
+ type SliderNode = WebCore.SliderNode;
46
+ type DateTimeInputNode = WebCore.DateTimeInputNode;
47
+ type TabsNode = WebCore.TabsNode;
48
+ type ModalNode = WebCore.ModalNode;
49
+ type CardNode = WebCore.CardNode;
50
+ type ResolvedRow = WebCore.ResolvedRow;
51
+ type ResolvedColumn = WebCore.ResolvedColumn;
52
+ type ResolvedText = WebCore.ResolvedText;
53
+ type ResolvedList = WebCore.ResolvedList;
54
+ type ResolvedImage = WebCore.ResolvedImage;
55
+ type ResolvedIcon = WebCore.ResolvedIcon;
56
+ type ResolvedVideo = WebCore.ResolvedVideo;
57
+ type ResolvedAudioPlayer = WebCore.ResolvedAudioPlayer;
58
+ type ResolvedButton = WebCore.ResolvedButton;
59
+ type ResolvedDivider = WebCore.ResolvedDivider;
60
+ type ResolvedMultipleChoice = WebCore.ResolvedMultipleChoice;
61
+ type ResolvedTextField = WebCore.ResolvedTextField;
62
+ type ResolvedCheckbox = WebCore.ResolvedCheckbox;
63
+ type ResolvedSlider = WebCore.ResolvedSlider;
64
+ type ResolvedDateTimeInput = WebCore.ResolvedDateTimeInput;
65
+ type ResolvedTabs = WebCore.ResolvedTabs;
66
+ type ResolvedModal = WebCore.ResolvedModal;
67
+ type ResolvedCard = WebCore.ResolvedCard;
68
+ type MarkdownRenderer = WebCore.MarkdownRenderer;
69
+ type MarkdownRendererOptions = WebCore.MarkdownRendererOptions;
70
+ }
71
+
72
+ interface A2UIClientEvent {
73
+ message: Types.A2UIClientEventMessage;
74
+ completion: Subject<Types.ServerToClientMessage[]>;
75
+ }
76
+ type DispatchedEvent = A2UIClientEvent;
77
+ declare class MessageProcessor {
78
+ private baseProcessor;
79
+ private readonly eventsSubject;
80
+ readonly events: Observable<A2UIClientEvent>;
81
+ private readonly versionSignal;
82
+ readonly version: _angular_core.Signal<number>;
83
+ constructor();
84
+ /**
85
+ * Increments the version signal to notify Angular that the data model has changed.
86
+ * This should be called after any update to the underlying base processor's surfaces.
87
+ */
88
+ private notify;
89
+ processMessages(messages: Types.ServerToClientMessage[]): void;
90
+ dispatch(message: Types.A2UIClientEventMessage): Promise<Types.ServerToClientMessage[]>;
91
+ getData(node: Types.AnyComponentNode, path: string, surfaceId?: string | null): unknown;
92
+ setData(node: Types.AnyComponentNode | null, path: string, value: any, surfaceId: string): void;
93
+ resolvePath(path: string, dataContextPath?: string): string;
94
+ getSurfaces(): ReadonlyMap<string, WebCore.Surface>;
95
+ clearSurfaces(): void;
96
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MessageProcessor, never>;
97
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<MessageProcessor>;
98
+ }
99
+
100
+ interface A2TextPayload {
101
+ kind: 'text';
102
+ text: string;
103
+ }
104
+ interface A2DataPayload {
105
+ kind: 'data';
106
+ data: Types.ServerToClientMessage;
107
+ }
108
+ type A2AServerPayload = Array<A2DataPayload | A2TextPayload> | {
109
+ error: string;
110
+ };
111
+
112
+ declare abstract class MarkdownRenderer {
113
+ abstract render(markdown: string, options?: Types.MarkdownRendererOptions): Promise<string>;
114
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MarkdownRenderer, never>;
115
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<MarkdownRenderer>;
116
+ }
117
+ declare class DefaultMarkdownRenderer extends MarkdownRenderer {
118
+ private static warningLogged;
119
+ render(markdown: string, options?: Types.MarkdownRendererOptions): Promise<string>;
120
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DefaultMarkdownRenderer, never>;
121
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DefaultMarkdownRenderer>;
122
+ }
123
+ declare function provideMarkdownRenderer(renderFn?: Types.MarkdownRenderer): {
124
+ provide: typeof MarkdownRenderer;
125
+ useValue: {
126
+ render: _a2ui_web_core.MarkdownRenderer;
127
+ };
128
+ useClass?: undefined;
129
+ } | {
130
+ provide: typeof MarkdownRenderer;
131
+ useClass: typeof DefaultMarkdownRenderer;
132
+ useValue?: undefined;
133
+ };
134
+
135
+ declare class Theme {
136
+ components: Types.Theme['components'];
137
+ elements: Types.Theme['elements'];
138
+ markdown: Types.Theme['markdown'];
139
+ additionalStyles?: Types.Theme['additionalStyles'];
140
+ update(theme: Types.Theme): void;
141
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Theme, never>;
142
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<Theme>;
143
+ }
144
+
145
+ declare abstract class DynamicComponent<T extends Types.AnyComponentNode = Types.AnyComponentNode> {
146
+ protected readonly processor: MessageProcessor;
147
+ protected readonly theme: Theme;
148
+ readonly surfaceId: _angular_core.InputSignal<string | null>;
149
+ readonly component: _angular_core.InputSignal<T>;
150
+ readonly weight: _angular_core.InputSignal<string | number>;
151
+ protected sendAction(action: Types.Action): Promise<Types.ServerToClientMessage[]>;
152
+ protected resolvePrimitive(value: Types.StringValue | null): string | null;
153
+ protected resolvePrimitive(value: Types.BooleanValue | null): boolean | null;
154
+ protected resolvePrimitive(value: Types.NumberValue | null): number | null;
155
+ protected getUniqueId(prefix: string): string;
156
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicComponent<any>, never>;
157
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DynamicComponent<any>, never, never, { "surfaceId": { "alias": "surfaceId"; "required": true; "isSignal": true; }; "component": { "alias": "component"; "required": true; "isSignal": true; }; "weight": { "alias": "weight"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
158
+ }
159
+
160
+ type CatalogLoader = () => Promise<Type<DynamicComponent<any>>> | Type<DynamicComponent<any>>;
161
+ type CatalogEntry<T extends Types.AnyComponentNode> = CatalogLoader | {
162
+ type: CatalogLoader;
163
+ bindings: (data: T) => Binding[];
164
+ };
165
+ interface Catalog {
166
+ [key: string]: CatalogEntry<Types.AnyComponentNode>;
167
+ }
168
+ declare const Catalog: InjectionToken<Catalog>;
169
+
170
+ declare const DEFAULT_CATALOG: Catalog;
171
+ declare function registerStandardComponents(catalog: Catalog): void;
172
+
173
+ declare class AudioPlayer extends DynamicComponent<Types.AudioPlayerNode> {
174
+ readonly url: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
175
+ protected readonly resolvedUrl: _angular_core.Signal<string | null>;
176
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AudioPlayer, never>;
177
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AudioPlayer, "a2ui-audio", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
178
+ }
179
+
180
+ declare class Button extends DynamicComponent<Types.ButtonNode> {
181
+ readonly action: _angular_core.InputSignal<_a2ui_web_core.Action | null>;
182
+ readonly child: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode | null>;
183
+ readonly primary: _angular_core.InputSignal<boolean | null>;
184
+ protected handleClick(): void;
185
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Button, never>;
186
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Button, "a2ui-button", never, { "action": { "alias": "action"; "required": false; "isSignal": true; }; "child": { "alias": "child"; "required": false; "isSignal": true; }; "primary": { "alias": "primary"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
187
+ }
188
+
189
+ declare class Card extends DynamicComponent<Types.CardNode> {
190
+ readonly child: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode | null>;
191
+ readonly children: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode[]>;
192
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Card, never>;
193
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Card, "a2ui-card", never, { "child": { "alias": "child"; "required": false; "isSignal": true; }; "children": { "alias": "children"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
194
+ }
195
+
196
+ declare class Checkbox extends DynamicComponent<Types.CheckboxNode> {
197
+ readonly label: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
198
+ readonly checked: _angular_core.InputSignal<_a2ui_web_core.BooleanValue | null>;
199
+ protected inputChecked: _angular_core.Signal<boolean>;
200
+ protected resolvedLabel: _angular_core.Signal<string | null>;
201
+ protected readonly inputId: string;
202
+ onToggle(event: Event): void;
203
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Checkbox, never>;
204
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Checkbox, "a2ui-checkbox", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "checked": { "alias": "checked"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
205
+ }
206
+
207
+ declare class Column extends DynamicComponent<Types.ColumnNode> {
208
+ readonly alignment: _angular_core.InputSignal<"start" | "center" | "end" | "stretch" | undefined>;
209
+ readonly distribution: _angular_core.InputSignal<"start" | "center" | "end" | "spaceBetween" | "spaceAround" | "spaceEvenly" | undefined>;
210
+ readonly children: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode[] | null | undefined>;
211
+ protected readonly classes: _angular_core.Signal<{
212
+ [x: string]: boolean;
213
+ }>;
214
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Column, never>;
215
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Column, "a2ui-column", never, { "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "distribution": { "alias": "distribution"; "required": false; "isSignal": true; }; "children": { "alias": "children"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
216
+ }
217
+
218
+ declare class DateTimeInput extends DynamicComponent<Types.DateTimeInputNode> {
219
+ readonly label: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
220
+ readonly value: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
221
+ readonly enableDate: _angular_core.InputSignal<boolean>;
222
+ readonly enableTime: _angular_core.InputSignal<boolean>;
223
+ protected readonly inputId: string;
224
+ protected inputType: _angular_core.Signal<"date" | "datetime-local" | "time">;
225
+ protected readonly resolvedLabel: _angular_core.Signal<string | null>;
226
+ protected resolvedValue: _angular_core.Signal<string | null>;
227
+ onChange(event: Event): void;
228
+ private handleAction;
229
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeInput, never>;
230
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimeInput, "a2ui-datetime-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "enableDate": { "alias": "enableDate"; "required": false; "isSignal": true; }; "enableTime": { "alias": "enableTime"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
231
+ }
232
+
233
+ declare class Divider extends DynamicComponent<Types.DividerNode> {
234
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Divider, never>;
235
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Divider, "a2ui-divider", never, {}, {}, never, never, true, never>;
236
+ }
237
+
238
+ declare class Icon extends DynamicComponent<Types.IconNode> {
239
+ readonly name: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
240
+ protected readonly resolvedName: _angular_core.Signal<string | null>;
241
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Icon, never>;
242
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Icon, "a2ui-icon", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
243
+ }
244
+
245
+ declare class Image extends DynamicComponent<Types.ImageNode> {
246
+ readonly url: _angular_core.InputSignal<Primitives.StringValue | null>;
247
+ readonly usageHint: _angular_core.InputSignal<"header" | "icon" | "avatar" | "smallFeature" | "mediumFeature" | "largeFeature" | null | undefined>;
248
+ readonly fit: _angular_core.InputSignal<"fill" | "contain" | "cover" | "none" | "scale-down" | null | undefined>;
249
+ readonly altText: _angular_core.InputSignal<Primitives.StringValue | null>;
250
+ protected readonly resolvedUrl: _angular_core.Signal<string | null>;
251
+ protected readonly resolvedAltText: _angular_core.Signal<string>;
252
+ protected classes: _angular_core.Signal<Record<string, boolean>>;
253
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Image, never>;
254
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Image, "a2ui-image", never, { "url": { "alias": "url"; "required": false; "isSignal": true; }; "usageHint": { "alias": "usageHint"; "required": false; "isSignal": true; }; "fit": { "alias": "fit"; "required": false; "isSignal": true; }; "altText": { "alias": "altText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
255
+ }
256
+
257
+ declare class List extends DynamicComponent<Types.ListNode> {
258
+ readonly alignment: _angular_core.InputSignal<"start" | "center" | "end" | "stretch" | undefined>;
259
+ readonly direction: _angular_core.InputSignal<"vertical" | "horizontal" | undefined>;
260
+ readonly children: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode[] | null>;
261
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<List, never>;
262
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<List, "a2ui-list", never, { "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "children": { "alias": "children"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
263
+ }
264
+
265
+ declare class Modal extends DynamicComponent<Types.ModalNode> {
266
+ readonly entryPointChild: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode>;
267
+ readonly contentChild: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode>;
268
+ protected readonly isOpen: _angular_core.WritableSignal<boolean>;
269
+ protected openModal(): void;
270
+ protected closeModal(): void;
271
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Modal, never>;
272
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Modal, "a2ui-modal", never, { "entryPointChild": { "alias": "entryPointChild"; "required": true; "isSignal": true; }; "contentChild": { "alias": "contentChild"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
273
+ }
274
+
275
+ declare class MultipleChoice extends DynamicComponent<Types.MultipleChoiceNode> {
276
+ readonly label: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
277
+ readonly options: _angular_core.InputSignal<{
278
+ label: Types.StringValue;
279
+ value: string;
280
+ }[]>;
281
+ readonly selections: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode | null>;
282
+ protected readonly selectId: string;
283
+ protected readonly resolvedLabel: _angular_core.Signal<string | null>;
284
+ protected readonly resolvedOptions: _angular_core.Signal<{
285
+ label: string | null;
286
+ value: string;
287
+ }[]>;
288
+ protected readonly resolvedSelections: _angular_core.Signal<string[]>;
289
+ onChange(event: Event): void;
290
+ private handleAction;
291
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MultipleChoice, never>;
292
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MultipleChoice, "a2ui-multiple-choice", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "selections": { "alias": "selections"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
293
+ }
294
+
295
+ declare class Row extends DynamicComponent<Types.RowNode> {
296
+ readonly alignment: _angular_core.InputSignal<"start" | "center" | "end" | "stretch" | undefined>;
297
+ readonly distribution: _angular_core.InputSignal<"start" | "center" | "end" | "spaceBetween" | "spaceAround" | "spaceEvenly" | undefined>;
298
+ readonly children: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode[] | null | undefined>;
299
+ protected readonly classes: _angular_core.Signal<{
300
+ [x: string]: boolean;
301
+ }>;
302
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Row, never>;
303
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Row, "a2ui-row", never, { "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "distribution": { "alias": "distribution"; "required": false; "isSignal": true; }; "children": { "alias": "children"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
304
+ }
305
+
306
+ declare class Slider extends DynamicComponent<Types.SliderNode> {
307
+ readonly label: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
308
+ readonly value: _angular_core.InputSignal<_a2ui_web_core.NumberValue | null>;
309
+ readonly minValue: _angular_core.InputSignal<number>;
310
+ readonly maxValue: _angular_core.InputSignal<number>;
311
+ protected readonly inputId: string;
312
+ protected readonly labelId: string;
313
+ protected resolvedLabel: _angular_core.Signal<string | null>;
314
+ protected resolvedValue: _angular_core.Signal<number | null>;
315
+ onInput(event: Event): void;
316
+ private handleAction;
317
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Slider, never>;
318
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Slider, "a2ui-slider", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
319
+ }
320
+
321
+ declare class Surface {
322
+ private readonly processor;
323
+ readonly surfaceId: _angular_core.InputSignal<string>;
324
+ readonly surfaceInput: _angular_core.InputSignal<_a2ui_web_core.Surface | null>;
325
+ protected readonly surface: _angular_core.Signal<_a2ui_web_core.Surface | null>;
326
+ protected readonly rootComponent: _angular_core.Signal<_a2ui_web_core.AnyComponentNode | null>;
327
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Surface, never>;
328
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Surface, "a2ui-surface", never, { "surfaceId": { "alias": "surfaceId"; "required": true; "isSignal": true; }; "surfaceInput": { "alias": "surface"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
329
+ }
330
+
331
+ declare class Tabs extends DynamicComponent<Types.TabsNode> {
332
+ readonly tabItems: _angular_core.InputSignal<_a2ui_web_core.ResolvedTabItem[]>;
333
+ protected readonly selectedIndex: _angular_core.WritableSignal<number>;
334
+ protected selectTab(index: number): void;
335
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tabs, never>;
336
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tabs, "a2ui-tabs", never, { "tabItems": { "alias": "tabItems"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
337
+ }
338
+
339
+ declare class TextField extends DynamicComponent<Types.TextFieldNode> {
340
+ readonly label: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
341
+ readonly text: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
342
+ readonly textFieldType: _angular_core.InputSignal<"number" | "date" | "shortText" | "longText" | undefined>;
343
+ protected readonly inputId: string;
344
+ protected resolvedLabel: _angular_core.Signal<string | null>;
345
+ protected resolvedText: _angular_core.Signal<string | null>;
346
+ protected htmlInputType: _angular_core.Signal<"text" | "number" | "date">;
347
+ onInput(event: Event): void;
348
+ private handleAction;
349
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextField, never>;
350
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextField, "a2ui-text-field", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "textFieldType": { "alias": "textFieldType"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
351
+ }
352
+
353
+ declare class Text extends DynamicComponent<Types.TextNode> {
354
+ private markdownRenderer;
355
+ readonly text: _angular_core.InputSignal<Primitives.StringValue | null>;
356
+ readonly usageHint: _angular_core.InputSignal<"body" | "caption" | "h1" | "h2" | "h3" | "h4" | "h5" | null | undefined>;
357
+ protected resolvedText: _angular_core.Signal<Promise<string>>;
358
+ protected classes: _angular_core.Signal<Record<string, boolean>>;
359
+ protected additionalStyles: _angular_core.Signal<Record<string, string> | null>;
360
+ private areHintedStyles;
361
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Text, never>;
362
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Text, "a2ui-text", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "usageHint": { "alias": "usageHint"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
363
+ }
364
+
365
+ declare class Video extends DynamicComponent<Types.VideoNode> {
366
+ readonly url: _angular_core.InputSignal<_a2ui_web_core.StringValue | null>;
367
+ protected readonly resolvedUrl: _angular_core.Signal<string | null>;
368
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Video, never>;
369
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Video, "a2ui-video", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
370
+ }
371
+
372
+ declare class Renderer {
373
+ private static hasInsertedStyles;
374
+ private readonly catalog;
375
+ private readonly container;
376
+ private readonly processor;
377
+ readonly surfaceId: _angular_core.InputSignal<string>;
378
+ readonly component: _angular_core.InputSignal<_a2ui_web_core.AnyComponentNode>;
379
+ private currentId;
380
+ private currentType;
381
+ private currentComponentRef;
382
+ constructor();
383
+ private render;
384
+ private resolveComponentType;
385
+ /**
386
+ * Updates the inputs of an existing component instance with the latest data from the node.
387
+ * This is called during component reuse to keep the UI in sync without losing DOM state (like focus).
388
+ */
389
+ private updateInputs;
390
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Renderer, never>;
391
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Renderer, "[a2ui-renderer]", never, { "surfaceId": { "alias": "surfaceId"; "required": true; "isSignal": true; }; "component": { "alias": "component"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
392
+ }
393
+
394
+ declare function provideA2UI(config: {
395
+ catalog: Catalog;
396
+ theme: Types.Theme;
397
+ }): EnvironmentProviders;
398
+
399
+ export { AudioPlayer, Button, Card, Catalog, Checkbox, Column, DEFAULT_CATALOG, DateTimeInput, Divider, DynamicComponent, Icon, Image, List, MessageProcessor, Modal, MultipleChoice, Renderer, Row, Slider, Surface, Tabs, Text, TextField, Theme, Types, Video, provideA2UI, provideMarkdownRenderer, registerStandardComponents };
400
+ export type { A2AServerPayload, A2DataPayload, A2TextPayload, A2UIClientEvent, CatalogEntry, CatalogLoader, DispatchedEvent };