Skip to main content
What every <VeltComments> prop actually does at runtime, its default behavior, and how it combines with related props. Props gives the name/type/default; this file gives the behavior. See the behaviors index for the cross-component state machines, positioning ownership, and the collapsedComments × collapsedRepliesPreview / composer matrices (referenced below, not duplicated). Field-level data shapes live in Data models. Every prop maps to a feature-service flag. Booleans coerce strings: "true"/"false" are JSON-parsed, an omitted prop never runs the setter (so the service default stands), and an empty-string boolean (darkMode with no value) counts as true. Array/object props are JSON-parsed if passed as a string. A malformed value is swallowed silently because the setter catches parse failures: the flag keeps its prior value rather than throwing.

Per-prop behavior (exhaustive)

<VeltComments> is a single host component with ~122 active props. Its exhaustive per-prop behavior is grouped by prop family below: Core feature toggles, Mentions / autocomplete, Layout / interaction modes, Placeholders, Shadow DOM & dark mode, and Callbacks: followed by the deprecated aliases. Each row states the prop’s default, its runtime effect, and how it interacts with related props. The zero-prop baseline is summarized in Default behaviors (no prop needed); every prop in Props Part 1 is covered.

Core feature toggles


Mentions / autocomplete


Layout / interaction modes


Placeholders


Shadow DOM & dark mode


Callbacks

<VeltComments> exposes these as @Output event emitters. Pass a handler function; it fires on the named action.

Deprecated aliases (handled, but don’t use)

These still resolve to a working setter but are superseded:

Default behaviors (no prop needed)

With no props set, <VeltComments> renders with:

Prop-interaction matrix

The pairwise interactions for each prop are documented in the Interactions & gotchas column of the tables above. The headline multi-prop matrices that span <VeltComments>: collapsedComments × collapsedRepliesPreview (the exact rendered reply structure), the composer collapsed/open lifecycle, sortBy × sortOrder, shadowDom vs the per-surface shadow flags, visibilityOptions requiring the private-comments capability, the commentPlaceholder vs replyPlaceholder priority chain, and fullExpanded vs collapsedComments precedence: live in the behaviors index and are linked from the rows above rather than duplicated here.

Positioning & composition

<VeltComments> is the host that owns positioning for the anchored comment surfaces: it places pins where the user clicks, anchors each pin dialog to its pin, and re-anchors on resize (floatingCommentDialog true by default). The comment dialog itself takes no coordinate input: it only requests re-anchoring. You keep this anchoring for free in wireframes; primitives/headless take over positioning. The statically-placed comment surfaces (sidebar, inline section, notifications panel) are positioned by your own layout. See Behaviors → Positioning ownership and the anchored-vs-static classification in Component definitions. Every documented prop of <VeltComments> is covered above.