maxUsers | 5 | Caps how many avatars render before the row collapses into an overflow “+N” count. Non-numeric values are rejected (logged) and the default holds. | Independent of self; the current user (when included) counts toward the cap. Setting a value other than 5 is tracked in analytics. |
inactivityTime | 5 (component literal); the presence service’s own baseline is 5 minutes | Milliseconds of no user activity before the user is flipped to the inactive/idle presence state (drives the tooltip’s “active vs away” display and away-minutes). Passing the prop calls the service setter with your raw value, which debounces idle detection by that many milliseconds, so pass a real millisecond value (e.g. 300000 for 5 min), not 5. Non-numeric values are rejected. | Must be less than offlineInactivityTime: see that row. Feeds the calculateUserAwayTime shown in the tooltip. |
offlineInactivityTime | 10 (component literal); service baseline after inactivity | Milliseconds of inactivity before the user is flipped from inactive to offline (removed from the live list). | Hard constraint: a value less than inactivityTime is rejected (logged) and ignored: offline must come after idle. Set both in milliseconds and keep offlineInactivityTime ≥ inactivityTime. |
documentParams | None | Listed in Props as a scoping input, but it is not a runtime @Input on the presence component (not documented as a live presence prop). Scope presence with location / locationId instead, or set the document via the provider/useSetDocument. Treat documentParams on VeltPresence as a no-op for filtering. | Use location/locationId (below) for sub-document scoping. |
location | (unscoped → all users on the document) | A location object that scopes the avatar list to users present at that location. The object is JSON-parsed (if passed as a string) and converted to a server location id; the list is then filtered to users whose locationId matches. | Mutually exclusive in effect with locationId: if locationId is set it wins (it is checked first). With neither set, all online users on the document render. |
locationId | (unscoped) | A location id string that scopes the avatar list to users whose location.id equals it. | Checked before location: if both are passed, locationId takes precedence. |
onPresenceUserChange | None | Callback fired with the current filtered presence-user array every time the (filtered) list changes: on initial load and on every add/remove/scope change. | Receives the post-filter list (respects location/locationId), not the raw document list. Use this, not onUsersChanged. |
onUsersChanged | None | Deprecated alias of onPresenceUserChange; fires with the same filtered array at the same time. | Kept for back-compat: migrate to onPresenceUserChange. Both fire together. |
flockMode | false | Enables flock (follow) mode: when on, clicking another user’s presence avatar makes the local user follow that user as the flock leader (their navigation/scroll is mirrored). Turning it on registers the navigate emitter; turning it off disables following. String "true"/"false" are JSON-parsed. | Works with onPresenceUserClick: a click both emits that event and, if flock mode is on and the clicked user isn’t you, sets them as flock leader. onNavigate only fires while flock mode is active. |
defaultFlockNavigation | (navigation enabled by default) | Controls whether following a leader also navigates the follower (route/URL changes), as opposed to only mirroring viewport. Passing true enables navigation on follow; the value is inverted internally to drive the underlying “disable navigation” flag. | Replacement for disableFlockNavigation. Only meaningful when flockMode is on. |
disableFlockNavigation | None | Deprecated inverse of defaultFlockNavigation: passing true disables flock navigation. Internally both set the same flag (this one un-inverted, defaultFlockNavigation inverted). | Migrate to defaultFlockNavigation. Don’t pass both: they write the same underlying flag and the last one wins. |
self | true (current user is included) | Whether the current user appears in the presence list. true → your own avatar shows in the row; false → you are excluded and only others show. String values are JSON-parsed. | Default-on is a common surprise: out of the box you see yourself. Set self={false} for the “others online” pattern. Interacts with maxUsers (you count toward the cap when included). |
shadowDom | true | Wraps the rendered avatar row in shadow DOM for style isolation. Set false to style it with ordinary selector CSS. | Same semantics as the shadow-DOM flags elsewhere: see Behaviors → shadowDom. When true, target CSS variables tokens rather than deep selectors. |
onNavigate | None | Callback fired during flock navigation with { path, url, baseUrl } so you can drive your own router (SPA navigation) instead of a hard page load. | Only fires while flockMode is enabled and the follower is being navigated. Pair with a custom router push in frameworks that don’t do full reloads. |
onPresenceUserClick | None | Callback fired with the clicked PresenceUser whenever a presence avatar is clicked. | Always fires on click. Additionally, if flockMode is on and the clicked user isn’t the current user, the click also makes that user the flock leader (you start following them). |
variant | None | Selects a named wireframe variant of the presence layout when you’ve registered one (e.g. an <VeltPresenceWireframe variant="...">). With no matching wireframe, the default avatar-list layout renders. | This is the hook into the wireframe approach: see Wireframes. Not a styling shortcut; it swaps the whole layout template. |