Skip to main content
New to wireframes? Start with UI Customization Concepts and the Template Variables overview.

Overview

The Comment Dialog wireframe exposes the variables below. Use them inside any <velt-comment-dialog-...-wireframe> tag via three forms: All variables are mapped — reference them by their short name. You do not need the componentConfig. prefix unless explicitly noted (see Root-Level Properties).

App State

App-wide values resolved from the shared per-annotation signal.

Data State

Per-annotation data: the live annotation, comment list, edit / draft state, attachments, and recordings.

UI State

Per-instance UI flags driven by the dialog itself. Grouped by area for readability — the underlying shape is flat. Layout modes — which rendering mode the dialog is in. Composer state — input, draft, and submission state. Reactions, replies, and dropdowns.

Feature State

Capability flags toggled via SDK config. All Shared — the same value applies to every dialog instance for the same annotation.

Common Props

Every Comment Dialog primitive accepts a small shared set of attributes. The most useful ones inside wireframes: Signal inputs (auto-wired in parent-child component composition):
  • [componentConfigSignal] — shared per-annotation config signal.
  • [parentLocalUIState] — per-instance UI state signal.
For the full per-subcomponent prop list, see Comment Dialog Primitives.

Context-Specific Variables

These are only resolvable inside the nested wireframe tags noted in the Available in column. Each is injected by the iteration primitive that owns the tag.
Aliases: commentObjcomment, annotationcommentAnnotation, annotationscommentAnnotations. Either name resolves; the friendly short form is preferred.

Version 1 Backward-Compatibility Aliases

Inherited from v4 SDK config signals. They are mapped so wireframes written for v4 keep working — the Maps to column tells you the v5 equivalent. The resolver also unwraps two legacy signal-name prefixes — commentDialogOptionsDropdownConfigSignal.* and commentDialogStatusDropdownConfigSignal.* — so an old wireframe written as {commentDialogOptionsDropdownConfigSignal.allowAssignment} keeps working.

Root-Level Properties (Use Full Path)

These properties live at the root of componentConfigSignal and are not entries in the variable map. To use them, write the full componentConfigSignal.<name> path. One root-level helper is mapped:

Type Reference

Types referenced by the variables above are documented in Data Models:

Subcomponents

Each subcomponent below has its own wireframe tag. The tables show extra variables beyond the common set, the shouldShow condition, and host CSS classes.

comment-dialog (root)

The root primitive — the <velt-comment-dialog> element customers place in their app.
  • Public element: <velt-comment-dialog>
  • Wireframe tag: <velt-comment-dialog-wireframe>
  • Children: *-header, *-body, *-composer, *-close-button

comment-dialog-header

The header strip across the top of the dialog: status, priority, custom-chip, options dropdown, copy-link, resolve / unresolve buttons.
  • Public element: <velt-comment-dialog-header>
  • Wireframe tag: <velt-comment-dialog-header-wireframe>
  • Children: *-status-dropdown, *-priority-dropdown, *-custom-annotation-dropdown, *-options-dropdown, *-resolve-button, *-unresolve-button, *-copy-link

comment-dialog-body

The middle section: threads list, reply avatars, toggle / hide-reply controls.
  • Public element: <velt-comment-dialog-body>
  • Wireframe tag: <velt-comment-dialog-body-wireframe>
  • Children: *-threads, *-reply-avatars, *-toggle-reply, *-hide-reply, *-more-reply

comment-dialog-threads

The list container. Iterates annotation.comments and renders one thread-card per comment.
  • Public element: <velt-comment-dialog-threads>
  • Wireframe tag: <velt-comment-dialog-threads-wireframe>
  • Children: *-thread-card
The threads container injects per-iteration variables into each thread-card:

comment-dialog-close-button

Close button that dismisses the dialog.
  • Public element: <velt-comment-dialog-close-button>
  • Wireframe tag: <velt-comment-dialog-close-button-wireframe>

comment-dialog-composer

The composer assembly — owns the per-instance composer state machine and emits change events as the user types.
  • Public element: <velt-comment-dialog-composer>
  • Wireframe tag: <velt-comment-dialog-composer-wireframe>
  • Children: *-input, *-avatar, *-action-button, *-attachments, *-recordings, *-private-badge, *-format-toolbar, *-assign-user
The composer injects extras for its child tags:

comment-dialog-composer-action-button

A polymorphic action button — the same primitive renders different controls depending on its type attribute.
  • Public element: <velt-comment-dialog-composer-action-button>
  • Wireframe tag: <velt-comment-dialog-composer-action-button-wireframe>
Supported type values: userMentions, autocomplete, file, attachments, audio, video, screen, format, submit.

comment-dialog-composer-input

The contenteditable input area with autocomplete (@mention) support.
  • Public element: <velt-comment-dialog-composer-input>
  • Wireframe tag: <velt-comment-dialog-composer-input-wireframe>

comment-dialog-composer-avatar

The current user’s avatar shown next to the composer in inline-section mode.
  • Public element: <velt-comment-dialog-composer-avatar>
  • Wireframe tag: <velt-comment-dialog-composer-avatar-wireframe>

comment-dialog-composer-attachments

The display row that lists files staged for upload and any rejected files.
  • Public element: <velt-comment-dialog-composer-attachments>
  • Wireframe tag: <velt-comment-dialog-composer-attachments-wireframe>

comment-dialog-composer-recordings

The display row that lists active and pending recordings.
  • Public element: <velt-comment-dialog-composer-recordings>
  • Wireframe tag: <velt-comment-dialog-composer-recordings-wireframe>

comment-dialog-composer-private-badge

The “Only for your team” badge shown above the composer when private mode is active.
  • Public element: <velt-comment-dialog-composer-private-badge>
  • Wireframe tag: <velt-comment-dialog-composer-private-badge-wireframe>

comment-dialog-composer-format-toolbar

The bold / italic / underline / strikethrough toolbar.
  • Public element: <velt-comment-dialog-composer-format-toolbar>
  • Wireframe tag: <velt-comment-dialog-composer-format-toolbar-wireframe>

comment-dialog-composer-assign-user

The assign-to dropdown shown beneath the composer when the user opens the @-mention picker.
  • Public element: <velt-comment-dialog-composer-assign-user>
  • Wireframe tag: <velt-comment-dialog-composer-assign-user-wireframe>

comment-dialog-thread-card

A single comment inside the thread list. Renders avatar, name, time, message, options, reactions, recordings, and edit-composer.
  • Public element: <velt-comment-dialog-thread-card>
  • Wireframe tag: <velt-comment-dialog-thread-card-wireframe>
  • Children: *-avatar, *-name, *-time, *-message, *-edited, *-options, *-reactions, *-reaction-tool, *-recordings, *-seen-dropdown, *-attachments, *-edit-composer, *-assign-button, *-unread, *-draft, *-device-type

comment-dialog-thread-card-avatar

The author’s avatar.
  • Public element: <velt-comment-dialog-thread-card-avatar>
  • Wireframe tag: <velt-comment-dialog-thread-card-avatar-wireframe>

comment-dialog-thread-card-name

The author’s display name.
  • Public element: <velt-comment-dialog-thread-card-name>
  • Wireframe tag: <velt-comment-dialog-thread-card-name-wireframe>

comment-dialog-thread-card-time

The comment’s lastUpdated timestamp formatted as relative time.
  • Public element: <velt-comment-dialog-thread-card-time>
  • Wireframe tag: <velt-comment-dialog-thread-card-time-wireframe>

comment-dialog-thread-card-message

The comment body. Renders text, HTML, or voice player. Supports message truncation.
  • Public element: <velt-comment-dialog-thread-card-message>
  • Wireframe tag: <velt-comment-dialog-thread-card-message-wireframe>

comment-dialog-thread-card-edited

Small “Edited” badge shown when a comment has been modified.
  • Public element: <velt-comment-dialog-thread-card-edited>
  • Wireframe tag: <velt-comment-dialog-thread-card-edited-wireframe>

comment-dialog-thread-card-options

The ”…” options dropdown trigger on a comment.
  • Public element: <velt-comment-dialog-thread-card-options>
  • Wireframe tag: <velt-comment-dialog-thread-card-options-wireframe>

comment-dialog-thread-card-reactions

Emoji reaction badges displayed below a comment.
  • Public element: <velt-comment-dialog-thread-card-reactions>
  • Wireframe tag: <velt-comment-dialog-thread-card-reactions-wireframe>

comment-dialog-thread-card-recordings

Recordings attached to a comment (audio / video / screen).
  • Public element: <velt-comment-dialog-thread-card-recordings>
  • Wireframe tag: <velt-comment-dialog-thread-card-recordings-wireframe>

comment-dialog-thread-card-seen-dropdown

“Seen by” dropdown showing which users have viewed the comment.
  • Public element: <velt-comment-dialog-thread-card-seen-dropdown>
  • Wireframe tag: <velt-comment-dialog-thread-card-seen-dropdown-wireframe>
  • Children: *-trigger, *-content

comment-dialog-thread-card-attachments

Attachments (images and other files) attached to a comment.
  • Public element: <velt-comment-dialog-thread-card-attachments>
  • Wireframe tag: <velt-comment-dialog-thread-card-attachments-wireframe>
  • Children: *-image, *-other

comment-dialog-status-dropdown

The annotation status dropdown in the header.
  • Public element: <velt-comment-dialog-status-dropdown>
  • Wireframe tag: <velt-comment-dialog-status-dropdown-wireframe>
  • Children: *-trigger, *-content
Per-iteration context inside content items:

comment-dialog-priority-dropdown

The annotation priority dropdown in the header.
  • Public element: <velt-comment-dialog-priority-dropdown>
  • Wireframe tag: <velt-comment-dialog-priority-dropdown-wireframe>
  • Children: *-trigger, *-content
Per-iteration context inside content items:

comment-dialog-custom-annotation-dropdown

The custom-chip dropdown in the header.
  • Public element: <velt-comment-dialog-custom-annotation-dropdown>
  • Wireframe tag: <velt-comment-dialog-custom-annotation-dropdown-wireframe>
  • Children: *-trigger, *-content
Per-iteration context inside content items:

comment-dialog-options-dropdown

The per-comment ”…” options dropdown. Contains assign, delete, edit, make-private, mark-as-read, and notification items.
  • Public element: <velt-comment-dialog-options-dropdown>
  • Wireframe tag: <velt-comment-dialog-options-dropdown-wireframe>
  • Children: *-trigger, *-content

comment-dialog-resolve-button

The “Resolve” button. Sets the annotation status to a resolving status.
  • Public element: <velt-comment-dialog-resolve-button>
  • Wireframe tag: <velt-comment-dialog-resolve-button-wireframe>

comment-dialog-unresolve-button

The “Reopen” / unresolve button.
  • Public element: <velt-comment-dialog-unresolve-button>
  • Wireframe tag: <velt-comment-dialog-unresolve-button-wireframe>

comment-dialog-private-button

The “Make private” button.
  • Public element: <velt-comment-dialog-private-button>
  • Wireframe tag: <velt-comment-dialog-private-button-wireframe>

comment-dialog-delete-button

The “Delete” button. Click triggers thread deletion.
  • Public element: <velt-comment-dialog-delete-button>
  • Wireframe tag: <velt-comment-dialog-delete-button-wireframe>

comment-dialog-suggestion-action

Renders accept/reject buttons in suggestion mode.
  • Public element: <velt-comment-dialog-suggestion-action>
  • Wireframe tag: <velt-comment-dialog-suggestion-action-wireframe>
  • Children: *-accept, *-reject

comment-dialog-suggestion-action-accept

Accept-suggestion button.
  • Public element: <velt-comment-dialog-suggestion-action-accept>
  • Wireframe tag: <velt-comment-dialog-suggestion-action-accept-wireframe>

comment-dialog-suggestion-action-reject

Reject-suggestion button.
  • Public element: <velt-comment-dialog-suggestion-action-reject>
  • Wireframe tag: <velt-comment-dialog-suggestion-action-reject-wireframe>

comment-dialog-approve

Moderator-mode “Approve” button shown only when an admin is reviewing a not-yet-approved comment.
  • Public element: <velt-comment-dialog-approve>
  • Wireframe tag: <velt-comment-dialog-approve-wireframe>

comment-dialog-assignee-banner

A horizontal banner shown above the dialog when the annotation has been assigned to a user.
  • Public element: <velt-comment-dialog-assignee-banner>
  • Wireframe tag: <velt-comment-dialog-assignee-banner-wireframe>
  • Children: *-resolve-button, *-unresolve-button, *-user-avatar, *-user-name

comment-dialog-private-banner

Banner shown above the dialog when the comment thread is in private mode.
  • Public element: <velt-comment-dialog-private-banner>
  • Wireframe tag: <velt-comment-dialog-private-banner-wireframe>

comment-dialog-ghost-banner

Banner shown when the annotation has lost its DOM target.
  • Public element: <velt-comment-dialog-ghost-banner>
  • Wireframe tag: <velt-comment-dialog-ghost-banner-wireframe>

comment-dialog-visibility-banner

The “Public / Private / Selected people” banner shown above the dialog when visibility-options are enabled.
  • Public element: <velt-comment-dialog-visibility-banner>
  • Wireframe tag: <velt-comment-dialog-visibility-banner-wireframe>
  • Children: *-dropdown, *-icon, *-text

comment-dialog-metadata

Renders an annotation.metadata.metadataTemplate strip above the comment list.
  • Public element: <velt-comment-dialog-metadata>
  • Wireframe tag: <velt-comment-dialog-metadata-wireframe>

comment-dialog-comment-category

Category chip(s) shown when auto-categorization is enabled.
  • Public element: <velt-comment-dialog-comment-category>
  • Wireframe tag: <velt-comment-dialog-comment-category-wireframe>

comment-dialog-comment-index

Numeric index label — the “1 of N” indicator (sidebar mode).
  • Public element: <velt-comment-dialog-comment-index>
  • Wireframe tag: <velt-comment-dialog-comment-index-wireframe>

comment-dialog-comment-number

The annotation’s annotationNumber (the human-friendly “Comment #42” identifier).
  • Public element: <velt-comment-dialog-comment-number>
  • Wireframe tag: <velt-comment-dialog-comment-number-wireframe>

comment-dialog-comment-suggestion-status

The “Accepted” / “Rejected” badge shown in suggestion mode.
  • Public element: <velt-comment-dialog-comment-suggestion-status>
  • Wireframe tag: <velt-comment-dialog-comment-suggestion-status-wireframe>

comment-dialog-reply-avatars

The collapsed-state strip showing avatars of users who have replied.
  • Public element: <velt-comment-dialog-reply-avatars>
  • Wireframe tag: <velt-comment-dialog-reply-avatars-wireframe>
  • Children: *-list, *-remaining-count

comment-dialog-toggle-reply

The “View replies (N)” / “Hide replies” toggle below a collapsed thread.
  • Public element: <velt-comment-dialog-toggle-reply>
  • Wireframe tag: <velt-comment-dialog-toggle-reply-wireframe>
  • Children: *-count, *-icon, *-text

comment-dialog-hide-reply

The “Hide replies” link shown when the dialog is expanded.
  • Public element: <velt-comment-dialog-hide-reply>
  • Wireframe tag: <velt-comment-dialog-hide-reply-wireframe>

comment-dialog-more-reply

The “Show N more replies…” expander row between the first comment and the rest.
  • Public element: <velt-comment-dialog-more-reply>
  • Wireframe tag: <velt-comment-dialog-more-reply-wireframe>

comment-dialog-navigation-button

Sidebar-mode pin-navigation button that scrolls to the related annotation in the document.
  • Public element: <velt-comment-dialog-navigation-button>
  • Wireframe tag: <velt-comment-dialog-navigation-button-wireframe>

comment-dialog-all-comment

The “View all comments” footer button that opens the comments sidebar.
  • Public element: <velt-comment-dialog-all-comment>
  • Wireframe tag: <velt-comment-dialog-all-comment-wireframe>

The “Copy link” button — copies a deep-link to this annotation to the clipboard.
  • Public element: <velt-comment-dialog-copy-link>
  • Wireframe tag: <velt-comment-dialog-copy-link-wireframe>

comment-dialog-sign-in

“Sign in” button shown to anonymous users.
  • Public element: <velt-comment-dialog-sign-in>
  • Wireframe tag: <velt-comment-dialog-sign-in-wireframe>

comment-dialog-upgrade

“Upgrade” button shown when the workspace plan has expired.
  • Public element: <velt-comment-dialog-upgrade>
  • Wireframe tag: <velt-comment-dialog-upgrade-wireframe>

Deeply-Nested Wireframe Tags

The primitives below decompose further into per-element wireframe tags. Each tag is registered separately and inherits the relevant parent’s context variables.

Composer attachments tags

The composer-attachments primitive renders three sub-trees: selected (valid pending uploads — image vs. other file), invalid (rejected files), and other non-image files.

Status / Priority / Custom-annotation dropdown tags

Options dropdown content variants

The options-dropdown-content rows have variant-specific tags so customers can override “delete comment” vs “delete thread”, “subscribe” vs “unsubscribe”, etc.

Thread-card / seen-dropdown / reply-avatars tags

Visibility banner tags

The visibility banner’s dropdown decomposes into trigger (icon + label + selected-avatar list) + content (per-option rows).