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

Overview

The Comment Sidebar is the panel that lists all annotations in a document — with filters, search, focused-thread view, and a page-mode composer. Variables below are available inside any <velt-comments-sidebar-...-wireframe> or <velt-comment-sidebar-...-wireframe> tag (both prefixes are used) via three forms:
Hybrid access pattern. Unlike Comment Dialog, the sidebar uses a flat componentConfig model — every property lives directly on the root rather than nested under appState / data / uiState / featureState. A small set of sidebar-specific names are mapped — those are listed under Mapped Variables and resolve via bare names. For everything else, write {componentConfig.<name>} and the resolver will reach it via the flat fallback.

Mapped Variables

These entries resolve only inside sidebar wireframes — their data is set by the sidebar’s componentConfigSignal.

Inherited Mapped Variables

The sidebar shares these standard mapped entries with every other Comments feature. For full definitions see Comment Dialog Wireframe Variables:
  • App state: user, isUserAdmin, isKnownUser.
  • Per-instance UI: darkMode, variant.
  • Comment data: annotation, annotations, allAnnotations, commentAnnotation, commentAnnotations.
Inside a sidebar wireframe that nests a comment-dialog wireframe (e.g. focused-thread mode), all of the Comment Dialog variables become available.

Component Config

Many sidebar properties are not in the wireframe map. Reach them via {componentConfig.<name>}. Grouped by area for readability — the underlying shape is flat. Layout / mode — which rendering mode the sidebar is in. Loading / empty state. Filter state. List data. Callbacks.

Common Props

The root <velt-comments-sidebar> element accepts a wide set of attributes; the most useful for wireframe authors: Signal inputs (for parent-child component composition):
  • [componentConfigSignal] — shared per-sidebar config signal.
Every primitive accepts default-condition to bypass shouldShow for previews.

Context-Specific Variables

These are only resolvable inside the nested wireframe tags noted in the Available in column. Each is injected by the iteration / focused-thread primitive that owns the tag.

Type Reference

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

Subcomponents

Each subcomponent below has its own wireframe tag. For per-subcomponent CSS classes, see Styling; for per-subcomponent props, see the existing Comment Sidebar Components.

comments-sidebar (root)

The root primitive — the <velt-comments-sidebar> element customers place in their app.
  • Public element: <velt-comments-sidebar>
  • Wireframe tag: <velt-comments-sidebar-wireframe>

comments-sidebar-wrapper

Wrapper element that hosts the actual sidebar content + scroll container. Always rendered when the sidebar is visible.
  • Public element: <velt-comments-sidebar-wrapper>
  • Wireframe tag: Registered via the wrapper’s own template; exposes componentConfigSignal and [darkMode].

comment-sidebar-header

Top of the sidebar — title row with the action buttons (filter, fullscreen, close, search…).
  • Public element: <velt-comment-sidebar-header>
  • Wireframe tag: <velt-comment-sidebar-header-wireframe>

comment-sidebar-filter-button

Filter icon button. Click opens the more-filters panel. An alternate badge SVG renders when appliedFiltersCount > 0.
  • Public element: <velt-comment-sidebar-filter-button>
  • Wireframe tag: <velt-comments-sidebar-filter-button-wireframe>

comment-sidebar-close-button / comment-sidebar-fullscreen-button

Close / fullscreen toggle buttons in the header.
  • Wireframe tags: <velt-comment-sidebar-close-button-wireframe>, <velt-comment-sidebar-fullscreen-button-wireframe>

Search input row.
  • Public element: <velt-comment-sidebar-search>
  • Wireframe tag: <velt-comment-sidebar-search-wireframe>

comment-sidebar-filter

The expanded filter panel — opens when the filter button is clicked. Contains many child filter primitives (status / priority / people / pages / documents / accessMode / commentCategory / version), each with its own <velt-comment-sidebar-filter-<name>-wireframe>.
  • Public element: <velt-comment-sidebar-filter>
  • Wireframe tag: <velt-comment-sidebar-filter-wireframe>

comment-sidebar-minimal-filter-dropdown

The compact filter + sort dropdown shown in the minimal layout (when filterConfig.layout === 'minimal'). Composes a trigger + content; each has its own wireframe tag.
  • Wireframe tag: <velt-comments-sidebar-minimal-filter-dropdown-wireframe>

comment-sidebar-minimal-actions-dropdown

The ”⋯” actions dropdown next to the minimal filter (mark all read, etc.).
  • Wireframe tag: <velt-comments-sidebar-minimal-actions-dropdown-wireframe>

comment-sidebar-status

Status filter dropdown (one of the per-category filter dropdowns; lives inside the filter panel). A standalone selector is also available as <velt-comment-sidebar-status>.
  • Public element: <velt-comment-sidebar-status>
  • Wireframe tag: <velt-comment-sidebar-status-wireframe>

comment-sidebar-list

The annotations list. Iterates componentConfig.virtualScrollData and renders a comment-dialog primitive (in sidebar mode) per annotation entry.
  • Public element: <velt-comment-sidebar-list>
  • Wireframe tag: <velt-comment-sidebar-list-wireframe>

comment-sidebar-empty-placeholder

Empty-state shown when the document has no annotations or the active filters reduce to zero.
  • Public element: <velt-comment-sidebar-empty-placeholder>
  • Wireframe tag: <velt-comments-sidebar-empty-placeholder-wireframe>

comment-sidebar-skeleton

Skeleton loader shown while annotations are being fetched.
  • Public element: <velt-comment-sidebar-skeleton>
  • Wireframe tag: <velt-comment-sidebar-skeleton-wireframe>

comment-sidebar-focused-thread

Focused-thread view — a single annotation taken full-width inside the sidebar with a back button. This is where focusedAnnotation becomes resolvable.
  • Public element: <velt-comment-sidebar-focused-thread>
  • Wireframe tag: <velt-comments-sidebar-focused-thread-wireframe>
The focused-thread renders its own back-button + a comment-dialog (in dialogVariant='sidebar' and focusedThreadDialogVariant='sidebar' modes). Inside the inner comment-dialog wireframes the standard Comment Dialog variables resolve — see Comment Dialog Wireframe Variables.

comment-sidebar-page-mode-composer

The page-level “Add comment” composer at the top of the sidebar when componentConfig.pageMode is enabled.
  • Public element: <velt-comment-sidebar-page-mode-composer>
  • Wireframe tag: <velt-comment-sidebar-page-mode-composer-wireframe>

comment-sidebar-action-button / comment-sidebar-reset-filter-button

Generic action-button / reset-filter-button primitives used inside the empty placeholder and other positions.
  • Wireframe tags: <velt-comment-sidebar-action-button-wireframe>, <velt-comment-sidebar-reset-filter-button-wireframe>

comment-sidebar-location-filter-dropdown / -document-filter-dropdown / -status-dropdown

Standalone filter dropdowns customers can place anywhere in their UI (independent of the main filter panel). Each has its own trigger + content + content-item structure.
  • Wireframe tags: <velt-comment-sidebar-location-filter-dropdown-wireframe>, <velt-comments-sidebar-document-filter-dropdown-wireframe>, <velt-comments-sidebar-status-dropdown-wireframe>

Deeply-Nested Wireframe Tags

The sidebar has the largest set of overridable surfaces in the SDK. Tags are grouped by area below — every tag is registered and customers can override any individual surface.

Top-level sidebar tags

Filter panel tags

The expanded filter panel composes a title + close + many per-category sub-panels + done / reset buttons + per-item primitives.

Filter-item tags

Inside each filter category, each individual option is rendered as a filter-item.

Filter-search tags

Standalone status / location / document dropdown tags

Customers can place these dropdowns outside the main filter panel.

Minimal filter / actions dropdown tags

Compact filter + sort UI used in the minimal layout (matches the multi-thread pattern).