Handbook · Reference · Structure nodes
Structure nodes
Where in the UI. Structure tab palette and context menu. Illegal edges are rejected.
| Kind | Name | What it is | Typical edges |
|---|---|---|---|
template | Template | Root of the document. Owns elements, shared categories, assets, animations, and SVG dialogs. | template → element, category, categoryDef, asset, animation, svgDialog |
element | Element | A kind of item this template can create (folder, task, product…). Holds layouts, scripts, category/class refs, defaults, and UI packs. | element → layout, category, action, script, classApiCall, asset, itemDefaults, categoryDefaults, categoryRef, classRef, fieldBindings, editFilter, predefinedCanvasItem, editForm, graphWiringDefaults, itemUiActions, animation |
layout | Layout | One visual surface for an element (card, editor, compact…). Components live here. | layout → component, action, script, classApiCall, animation, editFilter |
component | Component | A widget on a layout (text, chart, button…). Gestures wire to scripts/actions. | component → action, script, asset, animation, classApiCall |
category | Category (instance) | A category as used on the template graph. Prefer categoryDef for the shared definition. | — |
categoryDef | Category definition | Named category in the shared tree. Owns properties. Parent/child via categoryDef → categoryDef. | categoryDef → categoryDef, categoryProp, asset |
categoryProp | Category property | One field on a category (text, enum, table…). Bindings must cite the owning category id. | — |
action | Action | Host builtin (set value, navigate, open URL) or a custom action that runs a script. | — |
script | Script | Blockly (or canonical JS) program. Attach via lifecycle wires or component gestures. | — |
expression | Expression | Reusable computed value, authored on the expression canvas. | — |
asset | Asset | Image or SVG in the project catalog (IndexedDB in the editor). | — |
itemDefaults | Item defaults | Creation-time values for built-in item fields (title, colors, size…). | — |
categoryDefaults | Category defaults | Creation-time values for category properties. | — |
categoryRef | Category ref | Attaches a categoryDef to an element so items of that type can carry it. | — |
classRef | Class ref | Attaches a reusable class package to an element. | — |
classApiCall | Class API call | Picks a class-exported script for lifecycle or gesture wires. | — |
fieldBindings | Field bindings | Writes expression results into item fields or category properties on each paint. | — |
editFilter | Edit filter | Watches selected refs; only then runs onEdited (and similar) scripts. | editFilter → script, action, animation, classApiCall |
variables | Variables | Class-authored item variable defaults (scratch keys on the item JSON). | — |
predefinedCanvasItem | Predefined canvas item | Seed child item that appears when a parent is created. | predefinedCanvasItem → itemDefaults, categoryDefaults |
editForm | Edit form | Named host modal for structured editing. | — |
graphWiringDefaults | Graph wiring defaults | Default edge color/thickness when users wire items. | — |
itemUiActions | Item UI actions | Context menu / header pack for the item in Containd. | — |
animation | Animation | Named reusable canvas animation. | — |
svgDialog | SVG dialog | Named SVG UI shown via showSvgDialog. | — |
class | Class | Reusable package: categories, lifecycle scripts, API, variable defaults. | class → script, action, editFilter, categoryRef, variables, class |
Source: app/lib/graph/workspaceModel.ts (WorkspaceNodeKind, ALLOWED_CONNECTIONS).