AI Chat
An assistant embedded in the screen itself, so an operator can ask a question about what is in front of them without opening another tool. It answers from the tags you scope it to, the alarm history, and any manuals you have uploaded — and it reads only. It can point at a problem and suggest a next step; it cannot change a setpoint, acknowledge an alarm or write a tag.
Button
The primary way an operator does something. On its own a button does nothing — attach [event actions](../../designer/event-actions.md) to its `click` event.
Checkbox
A checkbox group — single-pick or multi-pick. Exposes the selection on its value.
Color Picker
A colour picker exposing the chosen colour as a CSS string, for the times an operator — not the author — decides what something looks like.
Date Picker
A date, date-range or time picker. The usual source of the `start` and `end` parameters that drive historical charts and reports.
Dropdown
A selection field. Its value is bindable, which is what makes it the usual driver of a screen: a dropdown selecting a line, with charts and detail panels bound to its value.
Form
A container that collects its child inputs and submits them to a database through a write named query. Validation, submission and the success/error outcome are handled for you — the result arrives as `submitSuccess` or `submitError` rather than as a script you have to write.
Input
A single-line text field. Bound to a writable tag it reads and writes it; bound inside a **Form** it becomes a field of that form.
Radio
A single-choice radio group, for a small set of mutually exclusive options.
Slider
A numeric slider exposing a number, for values with a natural range.
Switch
An on/off toggle exposing a boolean. Bound to a writable boolean tag it is the most direct control on a screen.
Textarea
A multi-line text field, for comments, notes and free-text reasons.
Upload
Pick or drop a file. The file is exposed on the component’s value and through the `fileReceived` event, so a script can store it anywhere.
WYSIWYG
A rich Markdown editor with a live split source/preview. It exposes the authored Markdown on its value, so it is bindable and usable as a form field.