@copilotkit/a2ui-renderer
Version:
A2UI Renderer for CopilotKit - render A2UI surfaces in React applications
45 lines (44 loc) • 2.21 kB
text/typescript
import { TemplateResult } from "lit";
import { ComponentApi, ComponentContext, InferredComponentApiSchemaType, ResolveA2uiProps, SurfaceModel } from "@a2ui/web_core/v0_9";
import { ZodObject, ZodRawShape, z } from "zod";
//#region src/web-components/types.d.ts
type LitRenderable = TemplateResult | Node | string | number | boolean | null | undefined | LitRenderable[];
interface LitComponentImplementation extends ComponentApi {
render: (context: ComponentContext, buildChild: (id: string, basePath?: string) => LitRenderable) => LitRenderable;
}
interface LitA2UIComponentProps<T, S = void> {
props: T;
buildChild: (id: string, basePath?: string) => LitRenderable;
context: ComponentContext;
state: S;
requestUpdate: () => void;
}
type LitRendererFn<Api extends ComponentApi, S = void> = (componentProps: LitA2UIComponentProps<ResolveA2uiProps<InferredComponentApiSchemaType<Api>>, S>) => LitRenderable;
interface RendererProps<T = Record<string, unknown>> {
props: T;
children: (id: string, basePath?: string) => LitRenderable;
dispatch?: (action: unknown) => void;
}
type ComponentRenderer<T = Record<string, unknown>> = (props: RendererProps<T>) => LitRenderable;
interface CatalogComponentDefinition<T extends ZodRawShape = ZodRawShape> {
props: ZodObject<T>;
description?: string;
}
type CatalogDefinitions = Record<string, CatalogComponentDefinition<any>>;
type PropsOf<D extends CatalogDefinitions, K extends keyof D> = z.infer<D[K]["props"]>;
type CatalogRenderers<D extends CatalogDefinitions> = { [K in keyof D]: ComponentRenderer<z.infer<D[K]["props"]>> };
interface A2UISurfaceElement extends HTMLElement {
operations: unknown[];
catalog?: unknown;
theme?: Record<string, unknown>;
surfaceId?: string;
loadingComponent?: unknown;
}
interface A2UINodeElement extends HTMLElement {
surface?: SurfaceModel<LitComponentImplementation>;
componentId?: string;
basePath?: string;
}
//#endregion
export { A2UINodeElement, A2UISurfaceElement, CatalogComponentDefinition, CatalogDefinitions, CatalogRenderers, ComponentRenderer, LitA2UIComponentProps, LitComponentImplementation, LitRenderable, LitRendererFn, PropsOf, RendererProps };
//# sourceMappingURL=types.d.mts.map