v1.2.0 — Expanded Theming, Dark Mode, Space Display Name & Guest Count
What's New
Dark mode support — theme prop (@relaya-chat/react)
Pass theme="light" or theme="dark" to <RelayaChat> to override auto-detection
from prefers-color-scheme. Wire it to your app's theme context to stay in sync:
// e.g. next-themes
<RelayaChat theme={resolvedTheme as 'light' | 'dark'} ... />Expanded theming API — headerIconColor / --sp-header-icon-color (@relaya-chat/react)
The SpaceTheme interface gains optional headerIconColor, surfaced as the
--sp-header-icon-color CSS custom property. Controls icon/button tint in the header
bar. Defaults to white (suitable for dark headers); set to a dark value for light
titleBg backgrounds:
const myTheme: SpaceTheme = {
...DEFAULT_THEME,
titleBg: '#f0f0f0',
headerIconColor: '#333333',
};Configurable space display name — SpaceHeaderNameAdmin (@relaya-chat/react)
New admin component, exported from @relaya-chat/react/admin. Admins can set a
cosmetic override for the name shown in the chat header bar — independent of the
space slug and billing records. Leaving it blank reverts to the official space name.
Anonymous guest count in the user list (@relaya-chat/react)
UserListModal now shows a "N guests" row for non-authenticated listeners. The
header count includes both named users and anonymous guests in the total.
Fixed
Reliable initial scroll-to-bottom (@relaya-chat/react)
First load now uses double requestAnimationFrame + behavior: 'instant'. Prevents
the scroll-to-bottom button appearing spuriously before layout is finalised — most
noticeable in iframe embed contexts where parent-page layout delays dimension calc.
For Integrators — New: PRIVACY.md
@relaya-chat/react now ships PRIVACY.md (also at
node_modules/@relaya-chat/react/PRIVACY.md in your install). It describes what
user data Relaya collects on your behalf: email (OTP sign-in), display name,
messages, avatar, and IP address for abuse/geo enforcement (not stored per message).
Browser storage: a localStorage refresh token only — no cookies, no third-party
tracking. Includes a ready-to-adapt paragraph for your own privacy policy.
Informational, not legal advice. You are the data controller; Relaya is the
data processor.