Skip to main content
Source of truth: exhaustive for what it covers. Generated from Velt variable metadata.
  • If a name isn’t on this page, it doesn’t exist: a {token} not listed for its component resolves to undefined.
  • Never invent or guess a name; use only identifiers that appear verbatim here or that you verified against ground truth and added here.
  • Scope: exhaustive per component for comments + notifications + core; out-of-scope component areas (video-editor, single-editor-mode, media-source-settings, audio-waveform, user-avatar) are not catalogued, and a few non-comment/-notification components (Recorder, Huddle, Presence, View) are listed for completeness but only spot-corrected, not re-enumerated.
Every {…} token you can read inside a wireframe, organized by component, with an example usage for each. For the token syntax (operators, nesting) see Wireframe tokens. Buckets: app (per-user) Β· data (per-annotation) Β· ui (per-instance) Β· feature (SDK-config flags) Β· iteration (loop-scoped). πŸ”‘ = boolean/state flag most useful in velt-if / velt-class. Two access models:
  • Structured features (Comment Dialog, Comment Bubble, Inline Comments Section, Multi-Thread Dialog, Activity Log, Comments Tool, Sidebar Button, Notifications): short names work ({annotation}, {darkMode}); full paths ({appState.user}, {featureState.enableResolve}, {uiState.…}) also valid.
  • Flat-config features (Text Comment, Autocomplete, Sidebar, Reactions, Cursor, Presence, Huddle, Recorder, Transcription, View, Area, Arrow, Selection, Rewriter): read as {componentConfig.<x>}; for name collisions (disabled, darkMode, variant, user, annotation) use the full path.
Resolution rule: a name not in the map falls through to componentConfig.<name>; an unknown name resolves to undefined. If a token shows nothing, check (a) spelling, (b) you’re in a slot that receives it, (c) flat vs structured path. React vs. Other Frameworks: every example below works in both; only the spelling differs. The example column uses whichever form is shortest. Full syntax with tabbed examples: Wireframe tokens.
Generated from the SDK and exhaustive per component. If a name isn’t listed for a component, it isn’t available there. For the nested-access root list and operators, see Wireframe tokens.

Inject your own data: setUiState()

Beyond the built-in variables below, you can inject your own app data and read it in any wireframe, velt-if, or velt-data:
Then read it in markup like any other variable: {uiState.projectName}, or gate with velt-if="{uiState.customFlag}". For per-annotation app data, use Context instead; setUiState is app-global.

Comment Dialog

Comment Bubble

Access model: structured; some need full globalConfigSignal.* / parentLocalUIState.*.

Comment Pin

Text Comment

Access model: flat-config: {componentConfig.<x>}.

Inline Comments Section

Access model: structured.

Multi-Thread Comment Dialog

Access model: structured, per-instance.

Autocomplete (@mentions)

Access model: flat-config.

Comments Sidebar

Access model: flat-config: {componentConfig.<x>}.

Notifications Panel & Tool

Access model: structured; short names.

Reactions

Access model: flat-config.

Presence

Access model: flat-config.

Cursor

Access model: flat-config.

Huddle

Access model: flat-config.

Recorder

Access model: flat-config: use full componentConfigSignal. for collisions.

Transcription

Access model: flat-config.

Activity Log

Access model: structured.

View Analytics

Access model: flat-config.

Comments Tool

Access model: structured; componentConfig.data.* / .uiState.*. Access model: structured.

Area Β· Arrow Β· Selection Β· Rewriter

Access model: flat-config.

Tags

No wireframe variables / slots. Customize via the [template] input on velt-tag-pin / velt-tag-dialog, CSS, or the headless useTagAnnotations / useTagUtils hooks. See Annotations, tags, arrows, and areas.

Notes

  • Iteration {i} (aliases commentIndex) is available inside list/Threads slots, 0-based. Loop slots also inject objects (option, filter, emoji, activity, dateGroup, chip, view, file, …) + per-item booleans (isSelected, isActive, isExpanded, isAscending).
  • Function-typed variables (onClick…, initRecording, toggleSidebar, handleEmojiSelected, …) are call-handlers you bind to events, not display values.
  • For deep fields of a compound object not listed, console.log it from a hook (e.g. useCommentAnnotations()) to see the exact shape.