Components
Built-in and custom component types, syncing the manifest from your Flutter code, the surface fixtures gallery.
Components are the types the model may put in a surface. The page has three tabs.
Custom
Your app’s own types, declared in Dart and synced, or created here. Columns: type, title, props, actions, source (from code · vN, dashboard), which agents allow it. Row menu: Edit, Delete (agents allowing the type fall back to text for it).
+ New custom type opens the editor: type name (lowercase, dot-namespaced such as acme.productCard, immutable once created), title, description for the model, props JSON Schema, example props, action ids, and a schematic preview. Types owned by code show a warning: edits are overwritten by the next sync.
Built-in
The 30 types the SDK renders out of the box, read-only: text, markdown, card, row, column, divider, image, avatar, button, list, table, chart, carousel, form, input, select, confirm, loading, error, badge, link, map, video, audio, rating, steps, accordion, tabs, countdown, progress. Props are documented in the protocol reference.
Sync from code
dart run kletso_flutter:sync # → kletso.components.json
Paste or drop the manifest (kletso.components/v1) and Import. The result lists added, updated and unchanged types. Rules: unknown types are added; a type whose description, props, example or actions changed is updated with version = max(current + 1, manifest version); identical types are unchanged. Source becomes from code.
After a sync, tick the new type in each agent’s UI tab and publish.
Surface fixtures
A gallery of the protocol’s sample surfaces rendered schematically: flight card, hotel card, sales chart, product cards, quick replies, callback form, confirm cancellation, delivery media hub (map, video, audio), trip plan (tabs, steps, accordion), and a kitchen-sink surface with every built-in type. Types not registered in the project are flagged in red. These are the same fixtures the SDK’s fake backend plays and the same ones trigger rules can attach.