@threadplane/chatInterfacev0.3.4

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;