v14.0.0-beta.1
Pre-release
Pre-release
·
203 commits
to master
since this release
v14.0.0-beta.1 (2026-03-23)
Migration guide: Upgrade to v14
Full breaking changes reference: breaking-changes.md
β Breaking Changes
Removed Components & Hooks
ChannelSearchβ useSearchinstead (#3014) (9a7b7a2)Modalβ useGlobalModalinsteadFixedHeightMessageβ removed entirelyMessageDeletedβ replaced byMessageDeletedBubble(rendered within the message bubble) (#2964) (446de99)MessageActionsWrapperβ droppedMessageOptions,CustomMessageActions,CustomMessageActionsList,MessageActionsBoxβ useMessageActionsinstead (#2932) (1d28279)RemindMeActionButtonβ removedQuotedPollcomponent andisQuotedprop fromPollβ removedMessageEditedTimestampβ removed (7cbe67e), replaced byMessageEditedIndicator(#3019) (7e9637a)MessageIsThreadReplyInChannelButtonIndicatorβ replaced byMessageAlsoSentInChannelIndicator(#2968) (b198029)MessageListNotificationsβ replaced byNotificationList(#3028) (e06ec62)useAudioControllerhook β migrate touseAudioPlayer(#3016) (35f8a5d)- Icons removed:
PauseIcon,PlayTriangleIcon,GeolocationIcon
Removed HOC Wrappers
All legacy higher-order context wrappers have been removed in favor of hooks (#2962) (e0cd4f2):
withChannelActionContextwithChannelStateContextwithChatContextwithComponentContextwithMessageContextwithTranslationContextwithTypingContext
Provider/hook APIs (*Provider and use*Context) remain unchanged. Helper src/context/utils/getDisplayName.ts also deleted.
Component API Changes
Channelβ no longer supports component overrides directly; useWithComponentsinstead. (#2904) (cd6001f)Avatarβ removeduserprop;imagerenamed toimageUrl;namerenamed touserName. (#2926) (2eb04ee)ReactionSelectorβ removed props:Avatar,detailedView,latest_reactions,reaction_counts,reaction_groups,reactionOptions,reverse. (#2916) (24a1169)VirtualMessageβ props changed fromFixedHeightMessagePropstoMessageUIComponentProps.MessageContextValue['handleDelete']β signature changed.MessagePropsβ removedendOfGroup,firstOfGroup, andgroupedByUser(usegroupStylesinstead).DropdownPropsβ replacedopenButtonPropswithTriggerComponent; removeddialogId.BaseImageβ now usesImageFallbackcomponent instead of CSS mask for error fallback.GroupAvatarβ renders a singleAvatarwithout wrappers whengroupChannelDisplayInfohas one entry. (#2930) (e307882)useChannelPreviewInfoβgroupChannelDisplayInfois now always defined. For 1:1 or β€2 members it returns{ members: [], overflowCount: undefined }.addNotification(fromChannelStateContext) β replaced byclient.notificationsAPI. (#3018) (83dec93)NotificationListβ moved; new parent isMessageListMainPanel.isOnlyEmojisutility β replaced bymessageTextHasEmojisOnly.handleSubmitβ removedcustomMessageDatafrom type declaration. (#2950) (fc547be)
Renamed Components
| Old Name | New Name |
|---|---|
MessageNotification |
NewMessageNotification |
ScrollToBottomButton |
ScrollToLatestMessageButton |
ReactionsListModal |
MessageReactionsDetail |
MessageDeleted |
MessageDeletedBubble |
ChannelListMessenger |
ChannelListUI (#3036) (d251338) |
MessageListNotifications / MessageListNotificationsProps |
NotificationList / NotificationListProps |
See also: (#3030) (a563248), (#3035) (7c978a9)
CSS Class Renames
Channel preview classes β all str-chat__channel-preview* renamed to str-chat__channel-list-item*:
| Old | New |
|---|---|
str-chat__channel-preview-container |
str-chat__channel-list-item-container |
Message classes:
| Old | New |
|---|---|
str-chat__message-input-cooldown |
str-chat__message-composer-cooldown |
str-chat__message-simple-name |
str-chat__message-metadata__name |
str-chat__message-simple-timestamp |
str-chat__message-metadata__timestamp |
str-chat__simple-message--error-failed |
str-chat__message-inner--error |
str-chat__channel-header-end |
str-chat__channel-header__data |
Reaction classes:
| Old | New |
|---|---|
str-chat__reaction-list |
str-chat__message-reactions |
str-chat__message-reactions |
str-chat__message-reactions__list |
str-chat__message-reaction |
str-chat__message-reactions__list-item |
str-chat__message-reaction-emoji |
str-chat__message-reactions__item-icon |
str-chat__message-reaction-count |
str-chat__message-reactions__item-count |
str-chat__reaction-list--counter |
str-chat__message-reactions__total-count |
Removed classes (no replacement):
str-chat__message-simple,str-chat__message-simple--mestr-chat__message-reactions-containerstr-chat__reaction-list--reversestr-chat__message-reaction-ownstr-chat__avatar--single,str-chat__avatar-group--three-partstr-chat_modal-inner- All
--str-chat__jump-to-latest-message-*CSS variables - All
--str-chat__message-bounce-*CSS variables
Other Breaking UI Changes
MessageReactionsDetailnow renders in a dialog instead of a modal. (#2963) (a941ed2)MessageActionsnow uses general-purposeContextMenucomponents. (#2932) (1d28279)- Suggestion list and items re-implemented with the new
ContextMenuAPI (markup changed). (#2931) (f151abc) str-chat__message-composer-containernow wraps the message composer.- Date separator no longer contains separation lines.
- Image/giphy attachments now rendered with
ModalGallery. (#2936) (a52de09) - Gallery assets must use the new
GalleryItemtype. - Removed support for
"live"label andchannel.data.subtitledisplay. ScrollToLatestMessageButtonintroduced by default in message list (with new markup).UnreadMessagesSeparatormarkup changed.
β¨ Features
Design System & Theming
- Dark theme support (#3002) (fbe28d0)
- New CSS variables (#2913) (4bc9ac4) and temporary v2 palette variables (#3040) (48d4647)
- New
Buttoncomponent (#2914) (f4675c6) with variant props (#2969) (2a4eabd) - Imported all Stream design system icons (#2949) (55c9a1a)
Redesigned Components
- Message UI β refreshed design with new spacing, annotations, and metadata layout (#2927) (40525f3), (#2954) (ba65752), (#2956) (5702090), (#2937) (1bf815f)
- MessageComposer β new design for both channel and thread views; grows up to 10 lines (#2919) (87e89f7), (#2983) (6b0310a)
- MessageActions β redesigned, migrated to
ContextMenu(#2951) (256d862), promoted from experimental (#2908) (1467b5c) - ChannelHeader β redesigned (#2970) (57f8a91)
- ChannelList β new loading skeletons (#2988) (e5b3b8e), reused for thread list (#2992) (3d7a3a3)
- Channel preview β full redesign (#2974) (5ef9027)
- Thread preview β full redesign (#2975) (90fdfe5)
- ThreadHeader / ThreadHead β redesigned (#2987) (059ae6a)
- Avatar / GroupAvatar β new design (#2926) (2eb04ee), (#2930) (e307882)
- ReactionSelector / ReactionsList β redesigned with extended selector (#2933) (ce087fa), (#2916) (24a1169), (#2972) (80c14e5)
- MessageReactionsDetail β redesigned (#2963) (a941ed2)
- Poll β redesigned in-message display and creation dialog (#2944) (c8adac4), actions modals (#2986) (861d7de), (#2993) (cc44c3f)
- Notification system β redesigned (#3018) (83dec93)
- Typing indicator β redesigned (#3005) (d6c08ca)
- EventComponent (system messages) β redesigned (#3007) (c17fc99)
- EmptyStateIndicator β redesigned for channel message list (#2960) (e745d69)
- SendToChannelCheckbox β redesigned (#2971) (1695a85)
- LoadingChannel β redesigned (#2991) (790df17)
- Search β new component promoted to stable;
ChannelSearchdropped (#2981) (c0b6230), (#3014) (9a7b7a2) - Floating indicators β redesigned in message lists (#2966) (12d075b)
- File drag-and-drop overlay β redesigned (#2959) (d2a72b5)
- Deleted messages β redesigned (now shown within message bubble with annotations) (#2964) (446de99)
- Pinned messages β redesigned (#2952) (3af135f)
- Image placeholders β redesigned loading and error states (#3000) (3539020), (#3024) (d34a0b8)
- Location sharing components β redesigned (#3031) (b72deda)
- Audio attachments β new widget design with
ProgressBar(#2934) (e990c06), (#3022) (d3d1e19) - Giphy attachments β new widget design (#2934) (e990c06)
- Media gallery viewer β adjusted (#3006) (6ea7a78)
- Suggestion lists β redesigned commands, mentions, and emoji suggestions (#2931) (f151abc)
New Components & Features
AvatarStackcomponent + message replies button redesign (#2938) (f7ad774)MessageEditedIndicatorcomponent (#3019) (7e9637a)MessageAlsoSentInChannelIndicatorcomponent (#2968) (b198029)ScrollToLatestMessageButton(default in message list)ModalGalleryfor image/giphy attachment rendering (#2936) (a52de09)- Proprietary
Gallerycomponent (replacesreact-image-gallery) (#2936) (a52de09) - Message translation indicator (#2958) (5c3a996)
- Smooth scrolling in
MessageList(#3027) (cdf35d2) - Sidebar display control (#2978) (b77d995) with
ChatViewconverted to general-purpose sidebar (#2939) (cd7a030) - Web sidebar nav icons aligned with mobile tab bar (#2979) (370caea)
channelActionSetintroduced (#3026) (199797e)- Unified dialog UI system (#2955) (44e2eaf)
- Unified channel and thread display titles (#2998) (29bb396)
- Updated empty states across chat views (#2976) (7eacfb7)
- Voice recording preview rendered in a dedicated slot (#2957) (2859c76)
- Server-defined default limits for channel and channel lists (#2943) (6302c96)
MessageTimestampnow shows only time (#3021) (da4aa92)- Modal close button restored (#2948) (62a27e8)
- Aligned
iconOnlyAPI and unread badge styling (#2982) (c28b8ff)
π Bug Fixes
- Stop typewriter animation on
ai_indicator.stop(#2918) (7777721) - Prevent increasing unread count via
useMarkReadwhen read-events are disabled (#2925) (d0e7b5f) - Fix
isDayjsimport for ESM usage (#2924) (73f8767) - Fix focus outline visual glitch for input (212e449)
- Fix voice recorder button not shown when quoting a message (#3015) (dbd6648)
- Fix mobile sidebar overlays shifting chat content (#2995) (35f4282)
- Exit search on blur (#3013) (97f485d)
- Fix single checkmark color in dark mode (#3032) (b3858c8)
- Fix poll forms not being submittable (#2989) (7dc82ca)
- Fix suggesting a poll option inadvertently voting for it (e0659f3)
- Fix giphy interactions and categorization (d403eee), (f032187)
- Sort command menus consistently (#2967) (64fd76b)
- Hide buttons in message input when a command is selected (22d32d4)
- Don't expose giphy arg in quoted message preview and channel preview (21b905c)
- Allow forwarding
unsafeHTMLto system messages (EventComponent) (#2973) (99c3960) - Show
ToggleSidebarButtonin threads view'sThreadHeader(#3020) (53d5639) - Unified
SummarizedMessagePreview, covering more cases (#2977) (1589481) - Wrap attachment previews in message composer (#2994) (a401978)
- Align message list width constraints (#2965) (02c9b8d)
- Align chat view sidebars and attachment preview remove icon (#3004) (08dc4b6)
- Adjust
ChatView.Selectorbutton styles (#2990) (7907f51) - Update
ChatViewselector icons (#2985) (ea814c3) - Make vite example channel selection bookmarkable (#2997) (1fbbfd1)
- Make full option list container take available height (da77bf3)
- Move "show all options" button to
PollOptionListcomponent (e75ca3a) - Remove tooltip from
PollVote(ca11f90) - Unify poll modal title casing, placeholders, and button placement (33fed1e)
- Various poll UI fixes (#3034) (885b7a6)
- Giphy and command UI fixes (#3025) (aa36a4d)
- Recert interactive flag, make Giphy use
BaseImage(59163cc) - Remove unnecessary CSS (3fc6f3f)
- Revert changes to
EndPollAlert(c364b0b) - Stabilize all test suites after v14 breaking changes (#3039) (91c1602)