A2uiComponentView
Chat-internal projection of an A2UI component, materialized by the
surface store. Distinct from the wire-format A2uiComponent in
@threadplane/a2ui — this type adds the per-component readiness fields
the progressive renderer consumes.
import type { A2uiComponentView } from '@threadplane/chat';Declaration
export interface A2uiComponentView {
readonly bindings: readonly string[];
readonly def: A2uiComponent;
readonly id: string;
readonly props: Readonly<Record<string, unknown>>;
readonly ready: boolean;
readonly type: string;
}Members
bindings
Data model paths this component references via its {$.path} prop
expressions. Extracted once on updateComponents apply; immutable.
readonly bindings: readonly string[];def
The raw wire-format component, retained so the slot directive can look up the catalog entry by type and resolve nested children on re-renders.
readonly def: A2uiComponent;id
The component's id (same as the wire-format A2uiComponent.id).
readonly id: string;props
Resolved property bag (reserved protocol keys stripped). Meaningful
only when ready === true.
readonly props: Readonly<Record<string, unknown>>;ready
Monotonic: false until every binding has resolved at least once
in the accumulated data model, then true forever. Once true,
subsequent updateDataModel envelopes push new prop values but do
NOT flip this back to false.
readonly ready: boolean;type
The component type — e.g. 'Button', 'TextField' — matched
against catalog views entries. Mirrors the wire component string.
readonly type: string;