# Symbol

> Dashboard component reference for the Symbol, an animated industrial SVG driven by live points, with its inputs, connections and orientation.

The **Symbol** places an industrial SVG drawing on the screen — a pump, a valve, a tank —
and drives its declared inputs from live points, so the artwork animates with the plant.
It is the one component whose identity is chosen before placement: the palette entry
opens the symbol library (the embedded system pack plus the operator's own imported
symbols), and the one you pick is what lands on the canvas. A component whose reference
cannot be resolved renders a neutral placeholder rather than an arbitrary piece of
equipment, with the reason in its tooltip.

What a symbol can *do* — which sub-elements animate, what each input accepts, where its
terminals sit — is authored in the symbol itself, not in this panel. The file format and
its vocabulary are documented in [Portable SVG symbols](ganter-symbols).

## Content {#content}

The panel opens with what this instance is: a preview, the symbol's name and its origin
(`<library> · <category>`). **Change symbol…** opens the library to swap the drawing;
only the drawing changes — position, size, orientation and every connection and binding
the new symbol still declares stay as they are. A symbol that declares no dynamic inputs
says so here.

## Data: the symbol's inputs {#data-the-symbols-inputs}

Each input the symbol declares appears as one field, captioned with what it takes — the
value category and, where the declaration bounds the input, the range, for example
`decimal · 0 to 100`, `boolean`, `color`, `text`. The same category filters the address
suggestions, so what the field says and what it offers cannot disagree.

Every input carries an explicit source choice, so exactly one of the two is ever in
force — the source is the operator's decision, never a guess over which field happens to
hold text:

| Source | What the field takes |
|---|---|
| Address | A rooted Logic address of the declared category. Once named, the point's current reading shows under the field — a colour arrives painted beside its hex, since the literal says nothing about the paint it stands for. |
| Fixed value | A constant, typed on the declaration's own terms: a number field with the declared bounds, a true/false switch, a colour picker (a hex value, a CSS colour name or a `var(--color-…)` token), or plain text. |

A fixed value the input refuses — a number outside the declared range, a paint the
sanitizer rejects — stays on screen with the reason beside it instead of silently
snapping back; nothing is stored until the entry is one the symbol accepts. An empty
entry is a source whose value is not set yet: the input stays neutral, exactly like an
empty address. Bad quality on a bound point reads as an unusable sample: the input
applies nothing, and that element keeps its authored state rather than animating on a
value nobody measured.

## Connections {#connections}

Shown only for symbols that declare terminals. The section lists:

- **Type configurations** — where the symbol shares one connection type across several
  terminals (a process fluid, say), each configuration is one dropdown over its allowed
  types, and the choice is shared by every terminal that uses it.
- **Terminals** — a read-only roster of the symbol's connection points: anchor, role
  (input, output, bidirectional) and resolved type. It answers "what can this symbol be
  wired to" without leaving the panel; the free/occupied state stays on the canvas
  markers, where the wiring gesture is.

## Orientation {#orientation}

Which way the drawing faces is the one appearance a Symbol has that no other kind does.
How big it is drawn is not asked here: that is the shared content scale in the
Appearance section.

| Property | What it does | Values | Default |
|---|---|---|---|
| Rotation | Clockwise artwork rotation, in quarter turns. | 0° · 90° · 180° · 270° | 0° |
| Flip horizontal | Mirrors the artwork around its vertical axis. | on / off | off |
| Flip vertical | Mirrors the artwork around its horizontal axis. | on / off | off |
