
A panel definition and its live result, side by side in the Dashboard Manager
DEFINE PANEL block, written in the Dashboard Manager or generated by the AI Assistant. The block names the panel, sets a few panel-wide attributes, and lists the components it contains — this page walks through each part.
Start with the smallest complete panel, then each section below adds one concept: reading the syntax, layouts, positioning, and lifecycle.
Panel skeleton
A panel opens withDEFINE PANEL, four panel-level attributes, then one or more components:
- The panel name (
MyPanel) identifies the panel in the Dashboard Manager. WITH VISIBILITYandWITH STATEdeclare the panel’s audience and lifecycle — see Lifecycle and visibility.WITH TITLEis the heading people see;WITH LAYOUTarranges the components.- Components are added with
ADD COMPONENT "<name>" WITH TYPE "<type>".
Layouts
The layout is declared on the panel header and controls how the panel’s top-level components are arranged:WITH LAYOUT line changes:
- Grid
- Vertical
- Horizontal

Grid: the three readouts fill one row of three columns
Mixing layouts with cards
The panel layout positions top-level components. To group several widgets into one grid slot, wrap them in acard: the card occupies a cell (and can span columns like any component), while its children stack inside it. This is how you mix a coarse grid with finer-grained grouping:

The grid sees two cells: the Zone 1 card (stacking a readout and an indicator) and the speed gauge
Positioning components on a grid
UseAT COLUMN x ROW y to place a component, and SPAN n COLUMNS to stretch it across the grid:

The resulting layout: a chart spanning the full top row with two gauges placed below it
Navigation
A dashboard doesn’t have to fit on one screen. Any component with a click handler can jump to another panel withNAVIGATE TO PANEL "<name>", and the target panel can return with NAVIGATE BACK — the classic pattern is an overview panel with a button per zone, each leading to a detail panel.
The overview panel links to the detail panel by name:

The overview panel: a live readout next to a button that opens the detail panel
NAVIGATE BACK:

The detail panel after clicking the button — its Back button returns to the overview
ON CLICK handler. The full action reference is in Actions & Events.
Lifecycle and visibility
A panel also carries lifecycle attributes:- New panels open in Draft — switch to
PUBLISHEDwhen operators should rely on the panel. PUBLICpanels are open to any connected client;PRIVATErestricts to the creator and admins.- The same lifecycle is surfaced as badges in the Dashboard Manager — see Dashboards in the HUB.
WITH VISIBILITY / WITH STATE values may not appear in the Dashboard Manager list at all, and the manager offers no way to view or change them outside the source text. Until that integration improves, always write both attributes explicitly in the definition.Common mistakes
A property set with WITH is silently ignored
A property set with WITH is silently ignored
SET, not WITH. WITH UNIT "°C", WITH RANGE 0, 100, and WITH DECIMALS 2 do nothing — write SET UNIT "°C", SET RANGE FROM 0 TO 100, SET DECIMALS 2.WITH TYPE inside a component body does nothing
WITH TYPE inside a component body does nothing
WITH TYPE "line" inside a chart body is silently ignored — use SET CHART_TYPE "line" instead.The panel saves but does not show up in the Dashboard Manager
The panel saves but does not show up in the Dashboard Manager
WITH VISIBILITY PUBLIC and WITH STATE PUBLISHED are present — panels saved without them may not appear in the panel list.


