Control Catalog

Every control type, what it's for, and whether it receives (sync), sends (action), or both. Field-level detail is in Layout Schema and the app's in-app control docs. Wire semantics are in Data Flow — sync & actions.

Pro marks the 11 premium controls. On a device without the Pro entitlement, a premium control renders as a locked placeholder (tap → paywall) rather than the live control — so a layout aimed at general users should lead with free controls. This affects display, not the protocol: your server's frames are the same either way.

Input controls (device → server via action)

Type Value Notes
button Fires its action on tap (often with a fixed payload)
toggle bool On/off
slider number Continuous; min/max/step
stepper number Discrete increments
segmented string One of options
picker string Menu/wheel/inline; one of options
datePicker string/number Date/time/dateAndTime
textInput string Free text; placeholder
colorPicker string (hex) Color selection
joystick (Pro) direction/magnitude Two-axis control

Display controls (server → device via sync)

Type Expects Notes
label string Static or synced text
image — / systemName SF Symbol or image
gauge number min/max, segments, gaugeStyle
progressRing number progressStyle: ring\|bar
statusLight string e.g. green/red/unknown
sparkline (Pro) number (stream) Appends to a rolling buffer of sparklinePoints
map (Pro) location mapStyle, mapInteractive
graph (Pro) nodes/edges JSON Force-directed; node taps can action or fetch content — see Recipe: Graph + Request/Reply Content
list array of objects valuePath → array; rows replace contents
cardList array of objects Card-style list
logConsole (Pro) string / {text,level} / array Appends lines, capped at maxLines
qrCode (Pro) string Renders a QR for the synced/Default value (display-only)

Containers (group children into shapes)

Type Notes
group A sub-grid of children; can be dynamic (server-populated)
carousel (Pro) Swipeable pages of groups
flipCard (Pro) Front/back faces
accordion (Pro) Collapsible sections

Layout helpers

Type Notes
divider Visual separator
spacer Empty grid cell(s)

Interactive / rich

Type Notes
chat (Pro) Mesh-backed chat; messages flow over the channel and persist locally. config: { target, showTypingIndicators, historyCount }
webView (Pro) Embedded web content

The premium set (single source of truth)

These 11 are gated: chat, map, graph, joystick, webView, logConsole, carousel, flipCard, accordion, sparkline, qrCode. Custom theming and the pulse enhancement are premium too. Everything else is free.

See Layout Schema for fields, Data Flow — sync & actions for how each receives/sends.