Skip to main content
This page focuses on what you need while customizing UI. Prop value types and object shapes are documented in the canonical Data models reference.
This list is generated from the Velt SDK and is complete for what it covers: a name that isn’t listed here doesn’t exist; don’t guess names. It covers the React component props surface (comments + notifications + presence/cursors + recorder/media + charts + utilities); defaults and runtime behavior live in Behaviors; this page is the name/type index.
The prop INDEX: every prop on every user-facing Velt component, by name + type + a one-line gloss, so you can scan “which prop do I pass for X / what’s it called.” <VeltComments> (the largest surface, 129 props) is Part 1; Part 2 covers all other components (sidebar, dialog, pin, notifications, presence, recorder, …).
This page is the index; defaults and behavior live in Behaviors and the behavior detail pages. Look up a prop here to find its name and type, then read its runtime behavior and interactions there. For data fields and events behind a prop, see Data models; for off-by-default features, see Feature flags; for layout, mode, and custom-data shapes, see Layout config. Also review APIs and Events.
Notes: every prop is optional unless marked (required). Booleans serialize to 'true'/'false' only when explicitly set; array/object props (e.g. customStatus) are JSON-serialized. Components also accept standard HTML attributes (className, style, id, children, ref, key), not re-listed. Generated from each component’s props interface in @veltdev/react; exhaustive.

Part 1: <VeltComments>

Core feature toggles

Mentions / autocomplete

Layout / interaction modes

Placeholders

Shadow DOM & dark mode

Callbacks

Deprecated (don’t use)

recordingSummary → use recordingTranscription; multiThreadModemultiThread; groupMultipleMatchgroupMatchedComments; onCommentAdd/onCommentUpdate → use the event hooks.
For <VeltComments> wireframe slot props such as Composer.ActionButton type, see Wireframe components section 6. For custom-data shapes such as customStatus, customPriority, and customReactions, see Layout config.

Part 2: all other components

Prop names and types are verbatim from each component’s props interface in @veltdev/react. Imported field types (e.g. ContextOptions, CommentSidebarFilterConfig, ReactionMap, NotificationTabConfig) come from @veltdev/types.

Comments: containers & surfaces

VeltCommentsSidebar (V1)

IVeltCommentsSidebarProps

VeltCommentsSidebarV2

IVeltCommentSidebarV2Props (extends HTML attrs)
V2 dropped the sidebar callback props. onSidebarOpen / onSidebarClose / onCommentClick / onCommentNavigationButtonClick (and the deprecated openSidebar / onSidebarCommentClick) are no longer props on V2: subscribe via the unified event bus instead: useCommentEventCallback('sidebarOpen' | 'sidebarClose' | 'commentClick' | 'commentNavigationButtonClick') (or getCommentElement().on(...)). Only onFullscreenClick remains a prop. V1 still has all the callback props (see the V1 section above).

VeltCommentDialog

IVeltCommentDialogProps (extends HTML attrs)

VeltMultiThreadCommentDialog

IVeltMultiThreadCommentDialogProps (extends HTML attrs)

VeltCommentText

IVeltCommentTextProps (extends HTML attrs)
VeltCommentThread (IVeltCommentThreadProps: annotationId, annotation, onCommentClick, darkMode, variant, dialogVariant, shadowDom, fullExpanded) is deprecated: use VeltCommentDialog (above) instead. VeltCommentComposer (IVeltCommentComposerProps: darkMode, variant, dialogVariant, shadowDom, context, locationId, documentId, folderId, targetComposerElementId, placeholder, readOnly) renders a standalone composer.

Comments: pins, bubbles, tools

VeltCommentBubble

IVeltCommentBubbleProps (extends HTML attrs)

VeltCommentPin

IVeltCommentPinProps (extends HTML attrs)

VeltCommentTool

IVeltCommentToolProps (extends HTML attrs)

VeltSidebarButton

IVeltSidebarButtonProps (extends HTML attrs)
VeltCommentsSidebarButton is a leaner variant of VeltSidebarButton (same props minus variant, sidebarButtonCountType, filterGhostCommentsInSidebar, commentCountType, defaultCondition). VeltCommentsMinimap (IVeltCommentsMinimapProps): position, targetScrollableElementId.

Inline / section components

VeltInlineCommentsSection

IVeltInlineCommentsSectionProps (extends HTML attrs)

VeltInlineReactionsSection

IVeltInlineReactionsSectionProps (extends HTML attrs)

Text & chart comments

VeltTextComment

IVeltTextCommentProps (extends HTML attrs)

VeltChartComment

IVeltChartCommentProps (extends HTML attrs)

VeltHighChartComments

IVeltHighChartCommentsProps

VeltNivoChartComments

IVeltNivoChartCommentsProps

Notifications

VeltNotificationsPanel

IVeltNotificationsPanelProps

VeltNotificationsTool

IVeltNotificationsToolProps (extends HTML attrs)
VeltNotificationsHistoryPanel (IVeltNotificationsHistoryPanelProps): embedMode, onNotificationClick, darkMode.

Presence & cursors

VeltPresence

IVeltPresenceProps

VeltCursor

IVeltCursorProps (extends HTML attrs)

Reactions

VeltReactionTool

IVeltReactionToolProps
There is no VeltReactionsToolbar component: reactions are exposed via VeltReactionTool and VeltInlineReactionsSection.

Recorder

VeltRecorderControlPanel

IVeltRecorderControlPanelProps

VeltRecorderPlayer

IVeltRecorderPlayerProps
VeltRecorderTool (type, panelId, buttonLabel, darkMode, shadowDom, recordingCountdown, variant, retakeOnVideoEditor, pictureInPicture, maxLength) and VeltRecorderNotes (shadowDom, videoEditor, recordingCountdown, recordingTranscription, playVideoInFullScreen, videoEditorTimelinePreview) round out the recorder family.

Media

VeltVideoPlayer

IVeltVideoPlayerProps

VeltVideoEditor

IVeltVideoEditorProps (extends HTML attrs)
VeltCommentPlayerTimeline (totalMediaLength, offset, shadowDom, videoPlayerId, onCommentClick, onReactionClick) overlays comment/reaction markers on a media timeline. VeltCanvasComment (IVeltCanvasCommentProps): canvasId (required), position (required).

Huddle

VeltHuddle

IVeltHuddleProps
VeltHuddleTool (IVeltHuddleToolProps): type, darkMode.

Tags & arrows

Users / access

VeltUserInviteTool

IVeltUserInviteToolProps (extends HTML attrs)
VeltUserRequestTool (IVeltUserRequestToolProps): type: default 'feedback'; allowed 'feedback' / 'reportBug' / 'contactUs'.

Analytics & utilities

Data / template utilities

Two small utility components for binding/rendering live data and conditionally rendering markup: used inside custom pin/dialog/wireframe layouts (see Template Variables). All props are optional; both also accept className and id.

VeltData

IVeltDataProps: renders <velt-data>. Binds and renders a single live data value into your markup.

VeltIf

IVeltIfProps (extends HTML attrs): renders <velt-if>. Conditionally renders its children from a wireframe/feature-state expression.
The directive form of this: veltIf as a prop/attribute on any wireframe slot: is documented in Template Variables and Wireframe components; VeltIf is the standalone component form.

Deprecated / legacy prop index

Part 3: Layout config and custom data

Everything above is a per-component prop list. This part covers the two config surfaces that need more than a table: the sidebar’s filter configuration, and replacing Velt’s built-in option sets with your own.
Prop before wireframe. If a prop gets you the layout you need (filterPanelLayout="bottomSheet", panelOpenMode="sidebar"), use it. It’s far less work than a wireframe. In non-React frameworks these are kebab-case attributes on the <velt-*> element (filter-panel-layout="bottomSheet").
The sidebar has three filter surfaces: the minimal filter (the quick all/unread/resolved bar), the main filter panel (the full dropdown of categories), and custom filters you define. All are customizable. 1. Choose which filters appear + add your own: the filters prop (a CommentSidebarFilterConfig). It’s a map of filter keys → a FilterTypeConfig:
Built-in keys: location, document, people, assigned, tagged, involved, priority, status, category, commentType, version. Toggle/relabel/reorder them, and add a custom filter by adding your own key with type: 'custom' + options:
(miniFilters / minimalFilters configure the quick-bar the same way; groupConfig controls list grouping.) A custom filter matches annotations by the option id you set on them (via customListDataOnAnnotation / annotation metadata). Set filter values programmatically with client.getCommentElement().setCommentSidebarFilters({ status: ["OPEN"], severity: ["sev1"] }). 2. Choose the filter layout (props above): filterPanelLayout ('menu' panel vs 'bottomSheet'), filterOptionLayout ('checkbox' vs 'dropdown'), filterOperator ('and'/'or'), filterCount, defaultMinimalFilter. 3. Fully restyle the filter UI with wireframe slots (Wireframe components). The V2 sidebar exposes: FilterButton (+ AppliedIcon), FilterDropdown (Trigger, Content → List → Item / Category), and FilterContainer (Title, CloseButton, GroupBy, ResetButton, ApplyButton, SectionList → Section → Label / Field → Control(Value, ChipList→Chip, Search, Chevron) / OptionList → Option(Checkbox, Name, Count)). Fill these to build a fully custom filter dropdown / panel while Velt keeps the filtering logic. In wireframes you can read {appliedFiltersCount} and {filterState} to drive your own filter UI. (See Template Variables.)
Same trade as everywhere: config props for which filters + layout (cheapest); wireframe slots to restructure the filter dropdown/panel; the filtering behavior stays Velt’s.

Custom data: your own statuses, priorities, categories, reactions

These props let you replace Velt’s default option sets with your own. They’re a core part of customization: the values flow into the UI (status/priority dropdowns, chips), into the wireframe variables (statusOptions, priorityOptions, customStatusesShown, …), and into the primitive dropdown items (so your custom dialog dropdown shows your statuses). Pass them on VeltComments:
Exact shapes:
  • customStatus: { id, name, color, type: 'default' | 'ongoing' | 'terminal', lightColor?, svg?, iconUrl? }[]: type controls semantics (terminal = resolved-like).
  • customPriority: { id, name, color, lightColor? }[].
  • customCategory: { id, name, color }[].
  • customReactions: a map of emoji → { label, emoji } (a ReactionMap).
  • customListDataOnAnnotation (a CustomAnnotationDropdownData): the custom chip/dropdown on a thread (powers the CustomAnnotationDropdown slot). Shape:
    The option id is what a custom sidebar filter matches against (see the filters example above): set the option on annotations via this prop, filter by the same id.
  • customListDataOnComment (an AutocompleteData): custom list on a comment (autocomplete-style). Shape:
When you build a custom status/priority dropdown with primitives (Primitives), this is where the statuses you map over come from. When you read {statusOptions} / {priorityOptions} in a wireframe (Template Variables), these are the values.

Version differences: embedMode is boolean on the V1 sidebar but string on V2. Match the type to the component version you’re using.