Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.velt.dev/llms.txt

Use this file to discover all available pages before exploring further.

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:
You want to…UseExample
Display a value as text<velt-data field="var" /><velt-data field="focusedAnnotation.from.name" />
Hide / show conditionallyvelt-if="{var}"velt-if="{componentConfig.skeletonLoading}"
Toggle a CSS classvelt-class="'cls': {var}"velt-class="'filter-{selectedMinimalFilterDropdownOption.filter}': true"
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.
VariableTypeSample ValueDescriptionExample
focusedAnnotationCommentAnnotation{ annotationId: "ann-42", from: { name: "Mayank" }, comments: [{ commentText: "Looks good", ... }], ... }The currently-focused annotation in focused-thread view. Supports deep paths ({focusedAnnotation.from.name}, {focusedAnnotation.comments.length}).<velt-data field="focusedAnnotation.from.name" />
selectedMinimalFilterDropdownOption{ filter: string; sort: string }{ filter: "all", sort: "date" }Currently-selected option in the minimal filter dropdown.velt-class="'filter-{selectedMinimalFilterDropdownOption.filter}': true"
appliedFiltersCountnumber2Number of filters currently applied — drives the badge on the filter button.<velt-data field="appliedFiltersCount" />
filteredCommentAnnotationsCountnumber12Count of annotations after filtering.<velt-data field="filteredCommentAnnotationsCount" />
unreadCommentAnnotationCountnumber3Count of unread annotations on the current document. Also exposed inside Comment Dialog.<velt-data field="unreadCommentAnnotationCount" />

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.
VariableTypeDescriptionExample
componentConfig.darkModebooleanPer-sidebar dark-mode flag.velt-class="'dark': {componentConfig.darkMode}"
componentConfig.variantstringWireframe variant id (default 'sidebar').<velt-data field="componentConfig.variant" />
componentConfig.fullScreenbooleanSidebar is rendered full-screen.velt-class="'fullscreen': {componentConfig.fullScreen}"
componentConfig.embedModestring | nullEmbedded vs floating vs default layout.velt-class="'embed-{componentConfig.embedMode}': true"
componentConfig.floatingModebooleanFloating overlay layout is active.velt-class="'floating': {componentConfig.floatingMode}"
componentConfig.pageModebooleanPage-mode layout is active.velt-class="'page-mode': {componentConfig.pageMode}"
componentConfig.readOnlybooleanRead-only mode is active.velt-class="'readonly': {componentConfig.readOnly}"
componentConfig.sidebarVisiblebooleanMaster visibility toggle.velt-if="{componentConfig.sidebarVisible}"
componentConfig.sidebarReadModebooleanRead-mode flag.velt-class="'read-mode': {componentConfig.sidebarReadMode}"
componentConfig.fullExpandedbooleanSidebar is fully expanded.velt-class="'expanded': {componentConfig.fullExpanded}"
Loading / empty state.
VariableTypeDescriptionExample
componentConfig.skeletonLoadingbooleanSkeleton loader is active while annotations load.velt-if="{componentConfig.skeletonLoading}"
componentConfig.noCommentsFoundbooleanNo annotations exist in scope.velt-if="{componentConfig.noCommentsFound}"
componentConfig.noCommentsFoundForAppliedFiltersbooleanFilters reduced the list to zero.velt-if="{componentConfig.noCommentsFoundForAppliedFilters}"
Filter state.
VariableTypeDescriptionExample
componentConfig.moreFiltersVisiblebooleanExpanded filter panel is open.velt-class="'filters-open': {componentConfig.moreFiltersVisible}"
componentConfig.filterConfigCommentSidebarFilterConfigFilter-panel configuration (layout, ordering, etc.).<velt-data field="componentConfig.filterConfig.layout" />
componentConfig.filtersRecord<string, any[]>Currently-selected filter values per category.<velt-data field="componentConfig.filters.statuses.length" />
componentConfig.systemFiltersOperator'AND' | 'OR'How multiple filter categories compose.velt-class="'op-{componentConfig.systemFiltersOperator}': true"
List data.
VariableTypeDescriptionExample
componentConfig.virtualScrollData{ type: string; data: any }[]Virtual-scroll items (annotations + section dividers).<velt-data field="componentConfig.virtualScrollData.length" />
componentConfig.commentAnnotationsCountByFiltersRecord<string, Record<string, number>>Per-filter-category-and-id annotation count.<velt-data field="componentConfig.commentAnnotationsCountByFilters.status.OPEN" />
Callbacks.
VariableTypeDescriptionExample
componentConfig.openMoreFiltersFunctionOpen the more-filters panel. Wire to a custom trigger.Call this from your custom click handler.
componentConfig.toggleMoreFiltersFunctionToggle the more-filters panel.Call this from your custom click handler.

Common Props

The root <velt-comments-sidebar> element accepts a wide set of attributes; the most useful for wireframe authors:
React PropHTML AttributeTypeDefaultDescription
fullScreenfull-screenbooleanfalseFull-screen layout.
embedModeembed-modestringnullEmbedded layout id (e.g. 'figma').
floatingModefloating-modebooleanfalseFloating-overlay layout.
pageModepage-modebooleanfalsePage-mode layout (includes top-level composer).
darkModedark-modebooleanfalseForce dark mode.
readOnlyread-onlybooleanfalseRead-only mode.
variantvariantstring'sidebar'Wireframe variant id.
dialogVariantdialog-variantstringVariant forwarded to nested comment-dialogs.
focusedThreadDialogVariantfocused-thread-dialog-variantstringVariant for the focused-thread dialog.
pageModeComposerVariantpage-mode-composer-variantstringVariant for the page-mode composer.
sortBysort-bystringSort field.
sortOrdersort-order'asc' | 'desc'Sort direction.
currentLocationSuffixcurrent-location-suffixstringPer-location suffix used in location-scoped filters.
systemFiltersOperatorsystem-filters-operator'AND' | 'OR''AND'How filter categories compose.
selectionselectionstringSelection behavior mode.
expandOnSelectionexpand-on-selectionbooleanAuto-expand sidebar on annotation selection.
sortDatasort-datastringSort data source.
queryParamsCommentsquery-params-commentsbooleanUse URL query params for comment navigation.
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.
VariableTypeAvailable inExample
focusedAnnotationCommentAnnotation<velt-comments-sidebar-focused-thread-wireframe> and descendants<velt-data field="focusedAnnotation.from.name" />
sidebarRefHTMLElementFocused-thread context — DOM reference to the sidebar overlay (used by inner overlay positioning).Internal — not normally read in user wireframes.
filter{ name: string }Per-filter-category tags — <velt-comments-sidebar-filter-name-wireframe> and friends.<velt-data field="filter.name" />
item{ name: string; count: number; selected: boolean }Per-option-row tags — filter-item children, status / location / document dropdown content-items.<velt-data field="item.name" />
group{ name: string; count: number; expanded: boolean }<velt-comments-sidebar-list-item-group-wireframe> and childrenvelt-class="'expanded': {group.expanded}"
tag{ name: string }Filter-search-tag children — <velt-comments-sidebar-filter-search-tags-item-wireframe> and friends<velt-data field="tag.name" />

Type Reference

Types referenced by the variables above are documented in Data Models:
TypeDescription
CommentAnnotationThe annotation thread (id, status, comments, etc.).
UserIdentified end-user object.
CommentSidebarFilterConfigFilter-panel configuration (layout, ordering, etc.).

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>
PropertyValue
Extra variablesNone — root only sees common variables.
shouldShow`componentConfig.isFirstComponentcomponentConfig.floatingModecomponentConfig.embedMode. The floating-mode overlay additionally requires componentConfig.sidebarVisible`.
ClassApplied when
velt-comments-sidebar-containerAlways on the host wrapper.
darkcomponentConfig.darkMode is true.
snippyly-sidebar-panel velt-overlay-panelOn the floating overlay container.
<VeltCommentsSidebarWireframe>
  <VeltCommentsSidebarWrapperWireframe>
    <VeltCommentSidebarHeaderWireframe />
    <VeltCommentSidebarListWireframe />
    <VeltCommentSidebarEmptyPlaceholderWireframe
      velt-if="{componentConfig.noCommentsFound} || {componentConfig.noCommentsFoundForAppliedFilters}" />
  </VeltCommentsSidebarWrapperWireframe>
</VeltCommentsSidebarWireframe>

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].
PropertyValue
Extra variablesNone beyond common variables.

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>
PropertyValue
Extra variablesNone beyond common variables.

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>
PropertyValue
Extra variablesNone.
Host classesvelt-sidebar-header--filter-button (always); velt-comments-sidebar-filter-button-open when componentConfig.moreFiltersVisible is true.

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>
PropertyValue
Extra variablesNone.

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

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>
PropertyValue
Extra variablesPer-iteration filter (category metadata) and item (per-option row) — see Context-Specific Variables.

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>
VariableTypeExample
selectedMinimalFilterDropdownOption.filterstringvelt-class="'filter-{selectedMinimalFilterDropdownOption.filter}': true"
selectedMinimalFilterDropdownOption.sortstring<velt-data field="selectedMinimalFilterDropdownOption.sort" />

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>
PropertyValue
Extra variablesNone.

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>
PropertyValue
Extra variablesPer-iteration item for each status option — see Context-Specific Variables.

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>
PropertyValue
Extra variablesNone at the list level. Nested comment-dialog wireframes (e.g. <velt-comment-dialog-thread-card-wireframe>) resolve in the standard Comment Dialog scope — see Comment Dialog Wireframe Variables.

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>
PropertyValue
Extra variablesNone.
shouldShow`componentConfig.noCommentsFoundcomponentConfig.noCommentsFoundForAppliedFilters`
ClassApplied when
velt-sidebar--no-comments-containerAlways on the wrapper.
velt-sidebar--no-comments-blockInner block.
velt-sidebar--no-comments-message-containerMessage wrapper.
velt-sidebar--no-comments-message-headerHeading.

comment-sidebar-skeleton

Skeleton loader shown while annotations are being fetched.
  • Public element: <velt-comment-sidebar-skeleton>
  • Wireframe tag: <velt-comment-sidebar-skeleton-wireframe>
PropertyValue
Extra variablesNone.
shouldShowcomponentConfig.skeletonLoading === true

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>
VariableTypeExample
focusedAnnotationCommentAnnotation<velt-data field="focusedAnnotation.from.name" />
sidebarRefHTMLElementInternal — DOM reference for overlay positioning.
PropertyValue
shouldShow!componentConfig.skeletonLoading && componentConfig.focusedAnnotation is set.
ClassApplied when
velt-comment-sidebar-focused-threadAlways on the wrapper.
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.
<VeltCommentsSidebarFocusedThreadWireframe>
  <div className="my-focused-thread">
    <button className="back-button">Back</button>
    <h2><velt-data field="focusedAnnotation.from.name" /></h2>
    <p><velt-data field="focusedAnnotation.comments.0.commentText" /></p>
  </div>
</VeltCommentsSidebarFocusedThreadWireframe>

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>
PropertyValue
Extra variablesDelegates to the standard Comment Dialog composer — see Comment Dialog Composer.

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>
PropertyValue
Extra variablesNone.

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>
PropertyValue
Extra variablesPer-iteration item for each option — see Context-Specific Variables.

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

TagNotesExample
<velt-comments-sidebar-panel-wireframe>The visible panel container.velt-class="'embed': {componentConfig.embedMode}"
<velt-comments-sidebar-header-wireframe>Sidebar header bar.(composes header children)
<velt-comments-sidebar-toggle-button-wireframe>Open / close toggle button.(click handler)
<velt-comments-sidebar-close-button-wireframe>Close button.(click handler closes the sidebar)
<velt-comments-sidebar-fullscreen-button-wireframe>Fullscreen toggle.velt-class="'fullscreen': {componentConfig.fullScreen}"
<velt-comments-sidebar-search-wireframe>Search input row.<velt-data field="componentConfig.searchQuery" />
<velt-comments-sidebar-list-wireframe>The annotations list.(composes list-item rows)
<velt-comments-sidebar-list-item-wireframe>Per-annotation row.velt-class="'is-selected': {annotation.selected}"
<velt-comments-sidebar-list-item-dialog-container-wireframe>Container for the inline comment-dialog inside a list item.(composes the nested dialog)
<velt-comments-sidebar-list-item-group-wireframe>Section divider for grouped lists.velt-class="'expanded': {group.expanded}"
<velt-comments-sidebar-list-item-group-name-wireframe>Group name label.<velt-data field="group.name" />
<velt-comments-sidebar-list-item-group-count-wireframe>Group count badge.<velt-data field="group.count" />
<velt-comments-sidebar-list-item-group-arrow-wireframe>Expand / collapse chevron.velt-class="'open': {group.expanded}"
<velt-comments-sidebar-skeleton-wireframe>Skeleton loader.velt-if="{componentConfig.skeletonLoading}"
<velt-comments-sidebar-page-mode-wireframe>Page-mode wrapper variant.velt-if="{componentConfig.pageMode}"
<velt-comments-sidebar-reset-filter-button-wireframe>Reset-filters button (used in empty placeholder).velt-if="{componentConfig.appliedFiltersCount} > 0"
<velt-comments-sidebar-focused-thread-dialog-container-wireframe>Container for the focused-thread comment-dialog.(composes the nested dialog)

Filter panel tags

The expanded filter panel composes a title + close + many per-category sub-panels + done / reset buttons + per-item primitives.
TagNotesExample
<velt-comments-sidebar-filter-wireframe>The expanded filter panel root.velt-class="'open': {componentConfig.moreFiltersVisible}"
<velt-comments-sidebar-filter-title-wireframe>Panel title.(static label)
<velt-comments-sidebar-filter-close-button-wireframe>Close button.(click handler)
<velt-comments-sidebar-filter-done-button-wireframe>”Done” button to apply changes.(click handler)
<velt-comments-sidebar-filter-reset-button-wireframe>Reset-all button.velt-if="{componentConfig.appliedFiltersCount} > 0"
<velt-comments-sidebar-filter-view-all-wireframe>”View all” expander for a category with many options.(click handler)
<velt-comments-sidebar-filter-name-wireframe>Filter category name label.<velt-data field="filter.name" />
<velt-comments-sidebar-filter-status-wireframe>Status filter category.(composes per-status rows)
<velt-comments-sidebar-filter-priority-wireframe>Priority filter category.(composes per-priority rows)
<velt-comments-sidebar-filter-people-wireframe>People filter category.(composes per-user rows)
<velt-comments-sidebar-filter-assigned-wireframe>Assigned-to filter category.(composes per-user rows)
<velt-comments-sidebar-filter-tagged-wireframe>Tagged-with filter category.(composes per-user rows)
<velt-comments-sidebar-filter-involved-wireframe>Involved-in filter category.(composes per-user rows)
<velt-comments-sidebar-filter-document-wireframe>Document filter category.(composes per-document rows)
<velt-comments-sidebar-filter-location-wireframe>Location filter category.(composes per-location rows)
<velt-comments-sidebar-filter-versions-wireframe>Version filter category.(composes per-version rows)
<velt-comments-sidebar-filter-comment-type-wireframe>Comment-type filter category.(composes per-type rows)
<velt-comments-sidebar-filter-category-wireframe>Comment-category filter.(composes per-category rows)
<velt-comments-sidebar-filter-custom-wireframe>Custom filter category (for customer-defined filters).(composes per-option rows)
<velt-comments-sidebar-filter-group-by-wireframe>Group-by selector.(composes per-group rows)

Filter-item tags

Inside each filter category, each individual option is rendered as a filter-item.
TagNotesExample
<velt-comments-sidebar-filter-item-wireframe>Per-option row.velt-class="'selected': {item.selected}"
<velt-comments-sidebar-filter-item-name-wireframe>Option name.<velt-data field="item.name" />
<velt-comments-sidebar-filter-item-count-wireframe>Option’s annotation-count badge.<velt-data field="item.count" />
<velt-comments-sidebar-filter-item-checkbox-wireframe>Checkbox wrapper.(composes the two variants below)
<velt-comments-sidebar-filter-item-checkbox-checked-wireframe>Checkbox icon (checked variant).velt-if="{item.selected}"
<velt-comments-sidebar-filter-item-checkbox-unchecked-wireframe>Checkbox icon (unchecked variant).velt-if="!{item.selected}"

Filter-search tags

TagNotesExample
<velt-comments-sidebar-filter-search-wireframe>Search input wrapper inside the filter panel.(composes input + tags)
<velt-comments-sidebar-filter-search-input-wireframe>The actual input.(input handler)
<velt-comments-sidebar-filter-search-dropdown-icon-wireframe>Dropdown chevron icon.Visual only.
<velt-comments-sidebar-filter-search-tags-wireframe>Selected-tag pills container.<velt-data field="componentConfig.selectedFilterTags.length" />
<velt-comments-sidebar-filter-search-tags-item-wireframe>A single selected-tag pill.<velt-data field="tag.name" />
<velt-comments-sidebar-filter-search-tags-item-name-wireframe>Tag name.<velt-data field="tag.name" />
<velt-comments-sidebar-filter-search-tags-item-close-wireframe>Tag remove (×) button.(click handler)
<velt-comments-sidebar-filter-search-hidden-count-wireframe>”+N more” badge when tags overflow.<velt-data field="hiddenCount" />

Standalone status / location / document dropdown tags

Customers can place these dropdowns outside the main filter panel.
TagNotesExample
<velt-comments-sidebar-status-wireframe>Standalone status-filter root.(composes trigger + content)
<velt-comments-sidebar-status-dropdown-trigger-wireframe>Trigger pill.(click handler)
<velt-comments-sidebar-status-dropdown-trigger-name-wireframe>Label inside trigger.<velt-data field="item.name" />
<velt-comments-sidebar-status-dropdown-trigger-arrow-wireframe>Trigger chevron.Visual only.
<velt-comments-sidebar-status-dropdown-trigger-indicator-wireframe>Selected-count indicator dot.velt-if="{appliedFiltersCount} > 0"
<velt-comments-sidebar-status-dropdown-content-wireframe>Open menu wrapper.(composes content rows)
<velt-comments-sidebar-status-dropdown-content-item-wireframe>Per-status row.velt-class="'selected': {item.selected}"
<velt-comments-sidebar-status-dropdown-content-item-name-wireframe>Status name.<velt-data field="item.name" />
<velt-comments-sidebar-status-dropdown-content-item-icon-wireframe>Status icon.<velt-data field="item.icon" />
<velt-comments-sidebar-status-dropdown-content-item-count-wireframe>Status count badge.<velt-data field="item.count" />
<velt-comments-sidebar-status-dropdown-content-item-checkbox-wireframe>Checkbox.(composes the two variants below)
<velt-comments-sidebar-status-dropdown-content-item-checkbox-checked-wireframe>Checked variant.velt-if="{item.selected}"
<velt-comments-sidebar-status-dropdown-content-item-checkbox-unchecked-wireframe>Unchecked variant.velt-if="!{item.selected}"
<velt-comments-sidebar-document-filter-dropdown-trigger-wireframe>Document-filter dropdown trigger.(click handler)
<velt-comments-sidebar-document-filter-dropdown-trigger-label-wireframe>Trigger label.<velt-data field="item.name" />
<velt-comments-sidebar-document-filter-dropdown-content-wireframe>Document-filter open menu.(composes content rows)
<velt-comments-sidebar-location-filter-dropdown-wireframe>Location-filter root.(composes trigger + content)
<velt-comments-sidebar-location-filter-dropdown-trigger-wireframe>Trigger pill.(click handler)
<velt-comments-sidebar-location-filter-dropdown-trigger-label-wireframe>Trigger label.<velt-data field="item.name" />
<velt-comments-sidebar-location-filter-dropdown-content-wireframe>Open menu.(composes content rows)

Minimal filter / actions dropdown tags

Compact filter + sort UI used in the minimal layout (matches the multi-thread pattern).
TagNotesExample
<velt-comments-sidebar-minimal-filter-dropdown-trigger-wireframe>Trigger pill.(click handler)
<velt-comments-sidebar-minimal-filter-dropdown-content-wireframe>Open menu.(composes filter rows)
<velt-comments-sidebar-minimal-filter-dropdown-content-filter-all-wireframe>”All” filter row.velt-class="'selected': '{selectedMinimalFilterDropdownOption.filter} === \'all\\''"
<velt-comments-sidebar-minimal-filter-dropdown-content-filter-open-wireframe>”Open” filter row.velt-class="'selected': '{selectedMinimalFilterDropdownOption.filter} === \'open\\''"
<velt-comments-sidebar-minimal-filter-dropdown-content-filter-resolved-wireframe>”Resolved” filter row.(selected-state)
<velt-comments-sidebar-minimal-filter-dropdown-content-filter-read-wireframe>”Read” filter row.(selected-state)
<velt-comments-sidebar-minimal-filter-dropdown-content-filter-unread-wireframe>”Unread” filter row.(selected-state)
<velt-comments-sidebar-minimal-filter-dropdown-content-filter-assigned-to-me-wireframe>”Assigned to me” row.(selected-state)
<velt-comments-sidebar-minimal-filter-dropdown-content-filter-reset-wireframe>Reset-filter row.(click handler)
<velt-comments-sidebar-minimal-filter-dropdown-content-selected-icon-wireframe>Per-row selected tick.velt-if="{item.selected}"
<velt-comments-sidebar-minimal-filter-dropdown-content-sort-date-wireframe>Sort-by-date row.(selected-state)
<velt-comments-sidebar-minimal-filter-dropdown-content-sort-unread-wireframe>Sort-by-unread row.(selected-state)
<velt-comments-sidebar-minimal-actions-dropdown-trigger-wireframe>Actions dropdown trigger (”⋯”).(click handler)
<velt-comments-sidebar-minimal-actions-dropdown-content-wireframe>Actions menu.(composes the actions below)
<velt-comments-sidebar-minimal-actions-dropdown-content-mark-all-read-wireframe>”Mark all as read” action.(click handler)
<velt-comments-sidebar-minimal-actions-dropdown-content-mark-all-resolved-wireframe>”Mark all as resolved” action.(click handler)

Putting it together

A typical Comment Sidebar with a custom header showing an applied-filters badge, a list of annotations, and a focused-thread view that gates on focusedAnnotation:
<VeltCommentsSidebarWireframe>
  <VeltCommentsSidebarWrapperWireframe>
    <VeltCommentSidebarHeaderWireframe>
      <h2>Comments</h2>
      <VeltCommentsSidebarFilterButtonWireframe
        velt-class="'has-filters': {appliedFiltersCount} > 0">
        Filter
        <span velt-if="{appliedFiltersCount} > 0">
          <velt-data field="appliedFiltersCount" />
        </span>
      </VeltCommentsSidebarFilterButtonWireframe>
      <VeltCommentSidebarCloseButtonWireframe />
    </VeltCommentSidebarHeaderWireframe>

    <VeltCommentSidebarListWireframe />

    <VeltCommentsSidebarEmptyPlaceholderWireframe
      velt-if="{componentConfig.noCommentsFound} || {componentConfig.noCommentsFoundForAppliedFilters}">
      <p>No comments to show.</p>
      <VeltCommentsSidebarResetFilterButtonWireframe
        velt-if="{appliedFiltersCount} > 0">
        Clear filters
      </VeltCommentsSidebarResetFilterButtonWireframe>
    </VeltCommentsSidebarEmptyPlaceholderWireframe>

    <VeltCommentsSidebarFocusedThreadWireframe>
      <div className="my-focused">
        <button>Back</button>
        <h3><velt-data field="focusedAnnotation.from.name" /></h3>
      </div>
    </VeltCommentsSidebarFocusedThreadWireframe>
  </VeltCommentsSidebarWrapperWireframe>
</VeltCommentsSidebarWireframe>