@allternit/apps-ui is the view kit for Views that run inside the sandbox. It is five web components: Card, Table, List, Form and Detail.
Why web components
A View is a single HTML document with a strict CSP and no build step you can count on. Web components need no framework, no bundler and no runtime dependency: the whole kit is one script (@allternit/apps-ui/allternit-ui.js) that you can inline. They also carry their own styles in a shadow root, so a View’s CSS cannot break them, and CSS variables from the look pack pass straight through. A React build would add a runtime and a bundling step to every View for no gain, and a host that wants React screens (as Allternit’s own chat does for connector tools) renders them itself.
Using it
Withview({ kit }) you write no HTML: the server inlines the kit and a mount script. In your own HTML:
data and fields. fields says where to find things; every value is a key into the data, never code.
A form fires
allternit-submit with { values } in detail. With view({ kit: { submitTool } }) the mount script calls that tool with the values.
Safety
Tool output is untrusted. The kit writes data only as text, never as markup. Links and images must behttps; anything else (javascript:, data:, http:) is dropped, and links open with rel="noopener noreferrer". A component that cannot render its data shows an empty state instead of throwing.
Look
Every color, radius, spacing and font comes from a look-pack variable with the Allternit default as fallback, so a View with no pack still looks right:
Focus rings use the brand color, buttons only animate when the user has not asked for reduced motion, and tables use real
th scope="col" headers. See Look packs.