Handbook · Reference · Structure nodes

Structure nodes

Where in the UI. Structure tab palette and context menu. Illegal edges are rejected.

KindNameWhat it isTypical edges
templateTemplateRoot of the document. Owns elements, shared categories, assets, animations, and SVG dialogs.template → element, category, categoryDef, asset, animation, svgDialog
elementElementA 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
layoutLayoutOne visual surface for an element (card, editor, compact…). Components live here.layout → component, action, script, classApiCall, animation, editFilter
componentComponentA widget on a layout (text, chart, button…). Gestures wire to scripts/actions.component → action, script, asset, animation, classApiCall
categoryCategory (instance)A category as used on the template graph. Prefer categoryDef for the shared definition.
categoryDefCategory definitionNamed category in the shared tree. Owns properties. Parent/child via categoryDef → categoryDef.categoryDef → categoryDef, categoryProp, asset
categoryPropCategory propertyOne field on a category (text, enum, table…). Bindings must cite the owning category id.
actionActionHost builtin (set value, navigate, open URL) or a custom action that runs a script.
scriptScriptBlockly (or canonical JS) program. Attach via lifecycle wires or component gestures.
expressionExpressionReusable computed value, authored on the expression canvas.
assetAssetImage or SVG in the project catalog (IndexedDB in the editor).
itemDefaultsItem defaultsCreation-time values for built-in item fields (title, colors, size…).
categoryDefaultsCategory defaultsCreation-time values for category properties.
categoryRefCategory refAttaches a categoryDef to an element so items of that type can carry it.
classRefClass refAttaches a reusable class package to an element.
classApiCallClass API callPicks a class-exported script for lifecycle or gesture wires.
fieldBindingsField bindingsWrites expression results into item fields or category properties on each paint.
editFilterEdit filterWatches selected refs; only then runs onEdited (and similar) scripts.editFilter → script, action, animation, classApiCall
variablesVariablesClass-authored item variable defaults (scratch keys on the item JSON).
predefinedCanvasItemPredefined canvas itemSeed child item that appears when a parent is created.predefinedCanvasItem → itemDefaults, categoryDefaults
editFormEdit formNamed host modal for structured editing.
graphWiringDefaultsGraph wiring defaultsDefault edge color/thickness when users wire items.
itemUiActionsItem UI actionsContext menu / header pack for the item in Containd.
animationAnimationNamed reusable canvas animation.
svgDialogSVG dialogNamed SVG UI shown via showSvgDialog.
classClassReusable package: categories, lifecycle scripts, API, variable defaults.class → script, action, editFilter, categoryRef, variables, class

Source: app/lib/graph/workspaceModel.ts (WorkspaceNodeKind, ALLOWED_CONNECTIONS).