diff --git a/ai-docs/breaking-changes.md b/ai-docs/breaking-changes.md index 182bce721..837684684 100644 --- a/ai-docs/breaking-changes.md +++ b/ai-docs/breaking-changes.md @@ -1,6 +1,6 @@ # React v14 Breaking Changes -Last updated: 2026-04-03 +Last updated: 2026-04-08 ## Scope @@ -13,8 +13,8 @@ This file tracks confirmed v13 to v14 breaking changes for `stream-chat-react`. ## Audit Reference - Baseline tag: `v13.14.2` -- Current audited SDK head: `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee` (`6c7cd42a`, `2026-04-03`, `fix(examples): enable async voice recording preview in thread composer (#3092)`) -- Future mining starting point: diff `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee..HEAD` first, then compare any newly confirmed changes back to the original v13 baseline before adding them here +- Current audited SDK head: `dc16bb584675f48d5f67cf5d5d355ba012cf81d2` (`dc16bb584`, `2026-04-08`, `feat!: externalize sidebar toggle and remove navOpen state from the SDK (#3088)`) +- Future mining starting point: diff `dc16bb584675f48d5f67cf5d5d355ba012cf81d2..HEAD` first, then compare any newly confirmed changes back to the original v13 baseline before adding them here Only confirmed items should move from this file into the migration guide. @@ -2015,6 +2015,99 @@ Only confirmed items should move from this file into the migration guide. - `docs/data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` - Example needed: yes +### BC-059: the final deprecated API purge removed old pinning, pagination, upload, preview, emoji-picker, and hook aliases + +- Status: confirmed +- Area: deprecated API cleanup +- User impact: + - imports or props using `pinPermissions`, `PinPermissions`, `PinEnabledUserRoles`, or `defaultPinPermissions` no longer compile + - custom `usePinHandler(message, pinPermissions, notifications)` calls must be rewritten to the new two-argument signature + - wrappers around `InfiniteScroll`, `LoadMoreButton`, and `LoadMorePaginator` can no longer use the deprecated alias props `hasMore`, `hasMoreNewer`, `loadMore`, `loadMoreNewer`, or `refreshing` + - top-level imports using `UploadButton` / `UploadButtonProps` no longer resolve; use `FileInput` / `FileInputProps` instead + - `ChannelListItemUI` no longer accepts the deprecated `latestMessage` alias; use `latestMessagePreview` + - `EmojiPicker` no longer accepts `popperOptions`; use the current placement-based positioning surface instead + - low-level imports using `StreamEmoji`, `moveChannelUp`, `hasNotMoreMessages`, or the old standalone channel-list listener hooks no longer resolve +- Old API: + - `v13.14.2:src/components/Message/types.ts:91` exposed `pinPermissions?: PinPermissions` + - `v13.14.2:src/context/MessageContext.tsx:133` exposed `pinPermissions?: PinPermissions` + - `v13.14.2:src/components/Message/hooks/usePinHandler.ts:43` through `:46` accepted `_permissions: PinPermissions = defaultPinPermissions` + - `v13.14.2:src/components/InfiniteScrollPaginator/InfiniteScroll.tsx:17` through `:45` exposed deprecated `hasMore`, `hasMoreNewer`, `loadMore`, and `loadMoreNewer` + - `v13.14.2:src/types/types.ts:32` through `:36` exposed deprecated `refreshing?: boolean` on `PaginatorProps` + - `v13.14.2:src/components/index.ts:39` and `:40` re-exported `UploadButton` and `UploadButtonProps` from the package root + - `v13.14.2:src/components/ChannelPreview/ChannelPreview.tsx:28` and `:29` still exposed the deprecated `latestMessage?: ReactNode` alias + - `v13.14.2:src/plugins/Emojis/EmojiPicker.tsx:30` exposed `popperOptions?: Partial<{ placement: PopperLikePlacement }>` + - `git grep` on `v13.14.2` finds public exports for `StreamEmoji`, `moveChannelUp`, `hasNotMoreMessages`, `useChannelDeletedListener`, `useNotificationMessageNewListener`, and the rest of the old standalone channel-list listener hooks +- New API: + - `src/components/Message/hooks/usePinHandler.ts:16` through `:19` now accept only `(message, notifications?)` + - current source has no `PinPermissions`, `PinEnabledUserRoles`, or `defaultPinPermissions` + - `src/components/InfiniteScrollPaginator/InfiniteScroll.tsx:16` through `:23` now expose only `hasNextPage`, `hasPreviousPage`, `loadNextPage`, and `loadPreviousPage` through `PaginatorProps` + - `src/types/types.ts:14` through `:18` expose `hasNextPage`, `hasPreviousPage`, and `isLoading`, with no `refreshing` + - `src/components/index.ts:45` and `:46` export `FileInput` and `FileInputProps` + - `src/components/ReactFileUtilities/UploadButton.tsx:20` through `:33` keep `FileInput` as the public file-input primitive + - `src/components/ChannelListItem/ChannelListItem.tsx:31` exposes `latestMessagePreview?: ReactNode`, with no deprecated `latestMessage` alias + - current `src/plugins/Emojis/EmojiPicker.tsx` exposes `placement?: PopperLikePlacement`, with no `popperOptions` + - current `rg` over `src` returns no `StreamEmoji`, `moveChannelUp`, `hasNotMoreMessages`, `useChannelDeletedListener`, `useNotificationMessageNewListener`, or sibling standalone listener-hook exports +- Replacement: + - remove `pinPermissions` customization and rely on `channelCapabilities['pin-message']` + - rewrite `usePinHandler(message, notifications?)` callers to the new signature + - update paginator wrappers to `hasNextPage`, `hasPreviousPage`, `loadNextPage`, `loadPreviousPage`, and `isLoading` + - replace top-level `UploadButton` imports with `FileInput` + - replace `latestMessage` with `latestMessagePreview` + - replace `EmojiPicker.popperOptions` with the current `placement` prop + - remove imports of the old standalone channel-list listener hooks and other deprecated utilities instead of expecting package-level shims +- Evidence: + - commit `8317b73a2 refactor!: remove deprecated APIs ahead of v14 stable (#3086)` explicitly removed these deprecated props, aliases, and exports + - current source still keeps the modern equivalents (`FileInput`, `latestMessagePreview`, `placement`, `isLoading`, `hasNextPage` / `loadNextPage`) while dropping the v13 compatibility layer + - current `MessageList` and `VirtualizedMessageList` still expose `hasMoreNewer` / `loadMoreNewer`; the removal in this bucket is limited to the deprecated `InfiniteScroll` alias props and should not be generalized beyond that +- Docs impact: + - migration guide + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/03-channel_list_hooks.md` + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/01-message_list.md` + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/02-virtualized_list.md` + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/09-message-composer/06-emoji-picker.md` + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` +- Example needed: yes + +### BC-060: sidebar toggle and mobile-nav state were externalized from the SDK + +- Status: confirmed +- Area: chat layout and sidebar state +- User impact: + - `Chat` no longer owns sidebar state, so `initialNavOpen` no longer exists + - `useChatContext()` no longer provides `navOpen`, `openMobileNav`, or `closeMobileNav` + - `ChannelHeader` no longer provides a built-in sidebar toggle or accepts a `MenuIcon` prop + - imports using `ToggleSidebarButton`, `ToggleButtonIcon`, `MenuIcon`, `NAV_SIDEBAR_DESKTOP_BREAKPOINT`, or `useMobileNavigation` no longer compile + - custom CSS or tests targeting SDK-owned nav-open classes or built-in toggle behavior need to be rewritten around app-owned state +- Old API: + - `v13.14.2:src/components/Chat/Chat.tsx:31` and `:57` exposed `initialNavOpen?: boolean` and defaulted it in `Chat` + - `v13.14.2:src/context/ChatContext.tsx:36`, `:40`, and `:63` exposed `closeMobileNav`, `openMobileNav`, and `navOpen` + - `v13.14.2:src/components/ChannelHeader/ChannelHeader.tsx:18`, `:19`, and `:32` exposed `MenuIcon` and used it for the built-in sidebar toggle + - `v13.14.2:src/components/ChannelList/hooks/index.ts:8` re-exported `useMobileNavigation` + - `git grep` on `v13.14.2` finds public references to `ToggleSidebarButton`, `ToggleButtonIcon`, and `NAV_SIDEBAR_DESKTOP_BREAKPOINT` +- New API: + - `src/context/ChatContext.tsx:24` through `:53` define `ChatContextValue` without `navOpen`, `openMobileNav`, or `closeMobileNav` + - `src/components/Chat/Chat.tsx:18` through `:33` define `ChatProps` without `initialNavOpen` + - `src/components/ChannelHeader/ChannelHeader.tsx:33` through `:38` define `ChannelHeaderProps` without `MenuIcon` + - `src/components/ChannelHeader/ChannelHeader.tsx:52` through `:63` render `HeaderStartContent` from `ComponentContext` instead of a built-in toggle button + - `src/context/ComponentContext.tsx:265` and `:267` expose `HeaderEndContent` and `HeaderStartContent` as the replacement slots for app-owned sidebar controls + - current `rg` over `src` returns no `initialNavOpen`, `navOpen`, `openMobileNav`, `closeMobileNav`, `ToggleSidebarButton`, `ToggleButtonIcon`, `MenuIcon`, `NAV_SIDEBAR_DESKTOP_BREAKPOINT`, or `useMobileNavigation` +- Replacement: + - manage sidebar open/closed state in app code instead of expecting `Chat` to own it + - inject app-owned toggle UI through `WithComponents` / `ComponentContext` using `HeaderStartContent` and `HeaderEndContent` + - remove any code that reads mobile-nav state from `useChatContext()` + - update CSS and tests to target app-owned toggle/layout behavior instead of the removed SDK nav-state classes +- Evidence: + - commit `dc16bb584 feat!: externalize sidebar toggle and remove navOpen state from the SDK (#3088)` removed SDK-owned sidebar state and the built-in toggle path + - current source keeps the replacement slots in `ComponentContext`, but the old stateful sidebar APIs are gone +- Docs impact: + - migration guide + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/03-chat/02-chat_context.md` + - `docs/data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` +- Example needed: yes + ## Likely - None yet @@ -2044,6 +2137,10 @@ Only confirmed items should move from this file into the migration guide. - example-only follow-ups (`623989574`, `2f060ae89`, `6c7cd42af`): investigated; these only update examples and docs scaffolding and do not add a new v13-to-v14 migration item. - assorted UI/UX fixes (`6c06e043`, `a47981ff`, `3f093622`): investigated; Giphy editability, dialog layering, composer state restoration, centered headers, message-list width, and channel-list dialog-portal cleanup changed runtime behavior, but they did not introduce new removed exports or renamed public override surfaces beyond the separately tracked reactions and icon buckets. - example-app refreshes (`86ada37e`, `887a326a`): investigated; these only update example apps and do not change the public SDK surface. +- Giphy fixed-height preview cleanup (`30e45faf7`): investigated; switching Giphy previews to fixed-height is a layout-stability improvement, not a removed or renamed v13 public API. +- audio playback wave/progress refinements (`982cf2a17`): investigated; smoother progress rendering and sizing updates do not remove or rename a documented public API. +- tracker/docs maintenance commit (`b5cb01f53`): investigated; this only updates the internal audit trackers and does not change the SDK surface. +- beta release commit (`d313317b0`): investigated; release tagging alone does not add a new migration item. ## Notes For Migration Guide Drafting diff --git a/ai-docs/docs-plan.md b/ai-docs/docs-plan.md index d5ca446fb..ec5bef9b1 100644 --- a/ai-docs/docs-plan.md +++ b/ai-docs/docs-plan.md @@ -1,6 +1,6 @@ # React v14 Docs Plan -Last updated: 2026-04-03 +Last updated: 2026-04-08 ## Goal @@ -8,16 +8,16 @@ Produce a reliable v13 to v14 migration guide for `stream-chat-react` and keep t ## Current Phase -- Phase: post-snapshot docs maintenance against audited head `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee` +- Phase: post-snapshot docs maintenance against audited head `dc16bb584675f48d5f67cf5d5d355ba012cf81d2` - Constraint: keep `breaking-changes.md` as the source of truth for confirmed migration items, but treat this file as the execution tracker for the remaining v14 docs work - Migration-guide and sidebar work is already in flight on `docs-content#1080`; keep the guide aligned with new SDK changes until that PR is merged -- New SDK changes after the audited head should be mined from `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee..HEAD`, then folded back into both trackers before related docs edits are made +- New SDK changes after the audited head should be mined from `dc16bb584675f48d5f67cf5d5d355ba012cf81d2..HEAD`, then folded back into both trackers before related docs edits are made ## Working Baseline - Code baseline for analysis: `stream-chat-react` `v13.14.2..master` -- Current audited SDK head: `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee` (`6c7cd42a`, `2026-04-03`, `fix(examples): enable async voice recording preview in thread composer (#3092)`) -- Future mining starting point: review `stream-chat-react` diff `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee..HEAD`, then map any confirmed changes back to `v13.14.2` before updating `breaking-changes.md` and this file +- Current audited SDK head: `dc16bb584675f48d5f67cf5d5d355ba012cf81d2` (`dc16bb584`, `2026-04-08`, `feat!: externalize sidebar toggle and remove navOpen state from the SDK (#3088)`) +- Future mining starting point: review `stream-chat-react` diff `dc16bb584675f48d5f67cf5d5d355ba012cf81d2..HEAD`, then map any confirmed changes back to `v13.14.2` before updating `breaking-changes.md` and this file - Docs content repo: `/docs/data/docs` - Docs content branch: `react-chat-v14` - Active migration-guide PR: `docs-content#1080` (`docs/react-v14-migration-guide` -> `react-chat-v14`) @@ -250,13 +250,13 @@ Completed WS5 pages: ## Active Batch: Verification -Objective: fold the current post-`241209e8` SDK changes back into the public docs, then run docs verification and fix any markdown/build issues that surface from the updated v14 content set. +Objective: fold the current post-`6c7cd42a` SDK changes back into the public docs, then run docs verification and fix any markdown/build issues that surface from the updated v14 content set. Post-snapshot maintenance currently in scope: -- no new post-snapshot docs fallout is currently open from the `241209e8..6c7cd42a` window after the avatar-overflow follow-up was applied -- the icon/RTL/styling/example commits in the same window were investigated and recorded as ruled out in `breaking-changes.md` -- the next docs pass should start from `6c7cd42a..HEAD` +- confirmed breaking changes from `6c7cd42a..dc16bb584` are now tracked in `BC-059` and `BC-060` +- the matching public-docs follow-up is complete for this window +- the next docs pass should start from `dc16bb584..HEAD`, then rerun the docs verification commands after those pages are updated ## Confirmed Docs Issues @@ -914,6 +914,66 @@ Post-snapshot maintenance currently in scope: - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` still explains `ChannelAvatar` in terms of a one-avatar vs group-avatar split, but does not yet call out the current automatic overflow behavior - Expected fix: completed; the migration guide, avatar reference page, and channel-header cookbook now describe the current `displayMembers` plus automatic-overflow model and no longer present `overflowCount` as a v13-to-v14 migration concern +### 69. v14 `Chat` and `ChatContext` docs still describe SDK-owned sidebar state + +- Status: resolved +- Evidence: + - current `ChatProps` no longer expose `initialNavOpen` + - current `ChatContextValue` no longer exposes `navOpen`, `openMobileNav`, or `closeMobileNav` + - `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` still recommends `initialNavOpen`, shows `useChatContext()` returning `navOpen`, and still lists `initialNavOpen` in the props table + - `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/02-chat_context.md` still documents `closeMobileNav`, `navOpen`, and `openMobileNav` +- Expected fix: completed; the `Chat` and `ChatContext` pages now describe app-owned sidebar state and no longer document the removed SDK nav-state contract + +### 70. v14 `ChannelHeader` docs still describe the removed built-in sidebar toggle path + +- Status: resolved +- Evidence: + - current `ChannelHeaderProps` no longer expose `MenuIcon` + - current `ChannelHeader` renders `HeaderStartContent` from `ComponentContext` instead of a built-in toggle button + - `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` still shows `MenuIcon` examples and still lists `MenuIcon` in the props table +- Expected fix: completed; the `ChannelHeader` docs now use the current `HeaderStartContent` / app-owned sidebar-toggle pattern instead of `MenuIcon` + +### 71. v14 message, message-list, and indicator docs still describe removed deprecated pin/load-more aliases + +- Status: resolved +- Evidence: + - current `MessageContext`, `MessageProps`, and `MessageListProps` no longer expose `pinPermissions` + - current `InfiniteScroll` no longer exposes the deprecated alias props `hasMore`, `hasMoreNewer`, `loadMore`, or `loadMoreNewer` + - current `LoadMoreButton`, `LoadMorePaginator`, and `PaginatorProps` no longer expose `refreshing` + - `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` still documents `pinPermissions` + - `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/01-message_list.md` and `02-virtualized_list.md` still list `pinPermissions` + - `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` still documents `refreshing` +- Expected fix: completed; the docs no longer expose `pinPermissions` or `refreshing`, while keeping the current `MessageList` / `VirtualizedMessageList` `hasMoreNewer` and `loadMoreNewer` guidance intact + +### 72. v14 channel-list hook docs still document removed standalone listener hooks and `useMobileNavigation` + +- Status: resolved +- Evidence: + - current source no longer exports the old standalone listener hooks such as `useChannelDeletedListener` and `useNotificationMessageNewListener` + - current source no longer exports `useMobileNavigation` + - `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/03-channel_list_hooks.md` still documents the removed hook list +- Expected fix: completed; the channel-list hooks page now reflects the current hook surface and removes the deleted listener/nav hooks + +### 73. v14 emoji-picker, channel-preview, and load-more docs still document removed deprecated props + +- Status: resolved +- Evidence: + - current `EmojiPicker` no longer exposes `popperOptions` + - current `ChannelListItemUI` no longer exposes the deprecated `latestMessage` alias + - current load-more surfaces no longer expose `refreshing` + - `data/docs/chat-sdk/react/v14/02-ui-components/09-message-composer/06-emoji-picker.md` still documents `popperOptions` + - `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` still documents `latestMessage` as a deprecated alias + - `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` still documents `refreshing` +- Expected fix: completed; the emoji-picker, channel-preview, and load-more docs now use `placement`, `latestMessagePreview`, and `isLoading` + +### 74. v14 migration guide still needs coverage for the latest deprecated API purge and sidebar-state externalization + +- Status: resolved +- Evidence: + - `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` still tells readers to use `initialNavOpen` + - the guide does not yet cover the removal of `navOpen` / `openMobileNav` / `closeMobileNav`, the `MenuIcon` / `HeaderStartContent` replacement path, or the latest deprecated-API removals such as `UploadButton`, `pinPermissions`, `popperOptions`, and `latestMessage` +- Expected fix: completed; the migration guide now covers sidebar-state externalization and the final deprecated-API cleanup from the stable-prep window + ## Docs Update Checklist - [x] Freeze the initial breaking-change inventory against audited snapshot `6ea7a78e4184fce6066f7318f9ebd57a5ff1474a` @@ -927,6 +987,7 @@ Post-snapshot maintenance currently in scope: - [x] Fold the post-snapshot stylesheet import-path cleanup from `55b1dd6c43f006ac8e7e2ceba1a58d8838bef149..f06846da4d492c0fb9ca375ee049682e6f9e48ba` back into the trackers and public v14 docs - [x] Fold the post-snapshot reactions and icon-catalog changes from `f06846da4d492c0fb9ca375ee049682e6f9e48ba..241209e8059ce767fe5bc3500466aa73f53618e3` back into the public v14 docs - [x] Fold the post-snapshot avatar overflow/internalization follow-up from `241209e8059ce767fe5bc3500466aa73f53618e3..6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee` back into the public v14 docs +- [x] Fold the post-snapshot deprecated-API purge and sidebar-state externalization from `6c7cd42afffb6d341b7a3b4bf5cc5a9bcd3f98ee..dc16bb584675f48d5f67cf5d5d355ba012cf81d2` back into the public v14 docs - [x] Convert `ai-docs/docs-plan.md` from inventory mode into execution workstreams - [x] Draft the v13 to v14 migration guide content - [x] Prepare the v14 release-guide rename and sidebar update in `docs-content#1080` @@ -942,97 +1003,108 @@ Post-snapshot maintenance currently in scope: ## Page Tracker -| Status | Page | Reason | -| -------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| in PR | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` | v13 to v14 migration guide drafted in `docs-content#1080`; keep aligned with post-snapshot changes such as Search, MessageEditedIndicator, current Giphy/composer behavior, the `ChannelListUI` migration, the latest action-set/error/unread changes, the latest channel-list hook cleanup, the stylesheet import-path cleanup, the latest reactions/icon follow-up work, and the avatar-overflow follow-up from `49d576e4` until merged | -| in PR | `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` | Nav label and migration guide metadata are updated in `docs-content#1080`; merge pending | -| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Now documents `quick-dropdown-toggle`, preserves it in filtered action-set examples, and explains that `markUnread` is only available for foreign messages | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Now preserves the default dropdown toggle, documents the own-message `markUnread` restriction, and keeps action-set examples aligned with the current base filter | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Now explains why starting from `defaultMessageActionSet` preserves the current dropdown trigger and default filtering | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Now documents the current `handleDelete()` failure semantics and local removal for unsent or network-failed messages | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Bounce prompt example now treats delete as async and documents the current failed-message delete behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | `useDeleteHandler()` and `useMarkUnreadHandler()` examples now match the current async delete flow and foreign-message-only unread behavior | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Custom message action examples now wrap `handleDelete()` in async handlers that match the current SDK behavior | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Removed the dead `MessageErrorIcon` import and replaced it with an app-owned failed-message indicator example | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Now calls out that the default `Mark as unread` action is limited to foreign messages | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/*` | Swept to the `MessageComposer*` naming set, current hooks, and scoped `WithComponents` guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/*` | Message-list docs now use `reactionDetailsSort`, remove the deprecated reaction-detail comparator props, and stay aligned with the current notification/composer surfaces | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/*` | Channel-list docs now align with `ChannelListUI`, `ChannelListItemUI`, `WithComponents`, and the current `str-chat__channel-list-inner*` selectors | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` | Search guidance remains current, and the page now documents channel-list customization through `ChannelListUI` / `ChannelListItemUI` with `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/02-channel_list_context.md` | Search guidance remains current, and the examples now use `ChannelListUI` plus `WithComponents` instead of `ChannelListMessenger` / `List` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/05-channel_search.md` | Rewritten around stable `Search`, its current prop surface, and `WithComponents` customization | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/02-channel_search.md` | Rewritten to stable Search customization patterns and current `SearchController` guidance | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/08-app_menu.md` | Rewritten to a custom `SearchBar` composition example instead of the removed `ChannelSearch AppMenu` prop | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/08-advanced-search.md` | Rewritten as a stable advanced Search guide using `SearchController`, restored filter-builder guidance, and stable `stream-chat-react` imports | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | Now keeps `Channel` focused on current behavior/data props and points SDK UI overrides to `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | Now reflects the current override-key surface, including `NotificationList`, `ImagePlaceholder`, `ChannelListUI`, `ContextMenu`, `ContextMenuContent`, and current `WithComponents` guidance | -| resolved | `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` | Now calls out the current `stream-chat` minimum, version-alignment guidance, and the root `dist/css/index.css` import path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` | Rewritten to the current deleted-message, message-status, edited-indicator, message-text, and bounce-prompt surfaces | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` | Rewritten around the current message UI composition without `FixedHeightMessage` or `MessageOptions` | -| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Rewritten to the stable `MessageActions` model with `messageActionSet`, quick actions, and `ContextMenu` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Now reflects the current `reactionDetailsSort`-only reaction-detail customization surface in addition to the current delete behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/01-message.md` | Now reflects the current `Message` prop surface without the removed `sortReactionDetails` comparator | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` | Rewritten to the current `MessageComposerContext` surface and dedicated cooldown helpers | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` | Rewritten to the currently exported composer hooks, including `useMessageContentIsEmpty` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` | Rewritten to current composer building blocks, `useCooldownRemaining()`, and the default command-selected layout behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | Rewritten without `useEditHandler` and aligned to the current edit flow | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` | Rewritten to the current `Attachment` grouping, supported override points, the `Image` / `Media` / `ModalGallery` split, and the inline `Giphy` path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` | Rewritten to the current poll override surface and quoted-message guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` | Now reflects the current `reactionDetailsSort`, `reactionGroups`, and `reaction_groups`-only `MessageReactions` contract | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` | Cookbook now keeps `reactionOptions` customization in `WithComponents` and no longer implies direct `MessageReactions` props | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Rewritten to the current unread, new-message, `NotificationList`, and scroll-to-latest model | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` | Rewritten around `NotificationList`, panel-targeted client notifications, `MessageListMainPanel`, and the direct floating-notification override points | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` | Now explains the current `displayMembers` plus automatic-overflow model and no longer implies caller-controlled overflow handling | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/07-sdk-state-management.md` | Channel-list state example now registers custom row UI through `WithComponents` / `ChannelListItemUI` instead of the removed `ChannelList Preview={...}` path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Preview-content guidance remains current, and the page now registers custom rows through `WithComponents` / `ChannelListItemUI` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` | `options.limit` guidance remains current, and the styling example now points at `.str-chat__channel-list-inner__main` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` | Display helpers remain current, and the cookbook now starts from a `ChannelListItemUI` override registered through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` | Rewritten to current `ThreadHeader` behavior, current `Avatar` props, and the `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` | Rewritten to `SuggestionList`, current suggestion item contracts, current `Avatar` props, and the `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Rewritten to current `WithComponents` registration, `Avatar` props, and reaction wiring | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` | Rewritten to current `WithComponents` registration and `Avatar` props | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Rewritten to current `MessageActions`, `defaultMessageActionSet`, and `WithComponents` customization | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/05-pin_indicator.md` | Updated to current `WithComponents` registration for `PinIndicator` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/04-giphy_preview.md` | Updated to register `GiphyPreviewMessage` through `WithComponents` and to distinguish ephemeral `/giphy` previews from sent inline giphy attachments | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/07-emoji_picker.md` | Updated to register `EmojiPicker` through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Updated custom blocking action guidance to the current `MessageActions` model | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/12-message-reminders.md` | Updated reminder override example to use `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/14-location-sharing.md` | Updated location-sharing override examples to use `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/03-component-variables.md` | Added a note clarifying that a few CSS token groups intentionally retain historical `stream-chat-css` names | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` | Rewritten to current `ChatView.Selector` and `ThreadAdapter` behavior, including `iconOnly={false}`, `aria-pressed`, and placeholder/blank-state guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` | Updated to current `ChatView.ThreadAdapter` placeholder behavior and the current labeled-selector example | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` | Rewritten to current `Thread` props and `WithComponents`-based thread-surface overrides | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Now points `MenuIcon` at the current `IconSidebar` default and matches the post-Phosphor icon catalog | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` | Rewritten to the `GlobalModal` public surface and `WithComponents` modal override pattern | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` | Rewritten around current dialog primitives, `GlobalModal`, `DialogManagerProvider closeOnClickOutside`, and the current `ContextMenu`/transition configuration surface | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` | Updated to the current `FileIcon` prop surface | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` | Rewritten around the current `MessageComposer` props, scoped `MessageComposerUI` overrides, and v14 composer behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` | Rewritten to current `MessageComposerUI` composition, scoped `WithComponents` usage, and the default command-selected layout behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` | Rewritten to the current selector action contract, `WithComponents` override path, and the default command-selected composer behavior | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` | Rewritten to current input building blocks, `LinkPreviewList` props, `VoiceRecordingPreviewSlot`, and the default command-selected layout behavior | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` | Rewritten to the current `LinkPreviewList` contract, `displayLinkCount`, and `WithComponents` override path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` | Rewritten to the current attachment preview model with `VoiceRecordingPreviewSlot` separated from `AttachmentPreviewList` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` | Rewritten around the `ModalGallery` override path and the lower-level `Gallery` provider split | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/02-voice-recording.md` | Voice-recording customization example now mounts the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/01-attachment_actions.md` | Attachment-actions cookbook now uses `WithComponents` for attachment overrides and refreshed imports | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/03-geolocation_attachment.md` | Geolocation attachment cookbook now registers the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/05-payment_attachment.md` | Payment attachment cookbook now registers the custom attachment renderer through `WithComponents` | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` | Updated styling examples to current header selectors and the root `dist/css/index.css` import path | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/01-themingv2.md` | Updated the page to CSS-only import snippets under the root `dist/css/*` entrypoints, including the layout-only examples | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` | Rewritten to the current default separator behavior and custom-separator guidance | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` | The custom header example now relies on `displayMembers` only and lets `ChannelAvatar` compute overflow automatically | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Rewritten to the current sidebar-state behavior after the temporary RC-only responsive-nav prop was removed, and now reflects the current `str-chat__channel-list` root class | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/09-base-image.md` | Updated to the current `BaseImage` fallback behavior, broader internal usage, `showDownloadButtonOnError` default, and `ImagePlaceholder` override path | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/08-date-time-formatting.md` | Updated to the current time-only `MessageTimestamp` default and the `MessageEditedIndicator`-based edited-time customization path | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/03-message-list/02-connection_status.md` | Updated to the current notification-stack model so `ConnectionStatus` is documented alongside `NotificationList` and `MessageListMainPanel` correctly | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Rewritten to the current `TypingIndicator` / `TypingIndicatorHeader` split and current prop contract | -| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` | Rewritten to the current custom typing-indicator contract and header typing guidance | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Rewritten to the current bounce-prompt contract without removed close props | -| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` | Rewritten to current recorder overrides, permission flow, and voice-recording send behavior | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` | Warning now reflects the remaining default helpers/components that still rely on `DefaultChannelData` fields | -| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Custom message examples now read SDK state from `useMessageContext()` instead of assuming injected `MessageUIComponentProps` | -| resolved | `data/docs/chat-sdk/react/v14/07-troubleshooting/01-troubleshooting.md` | Updated Giphy guidance to the current `giphyVersion` default and clarified that the same setting affects preview thumbnails as well | -| resolved | `data/docs/chat-sdk/react/v14` (multiple pages) | Repo-wide sweep is complete; remaining `Channel X={...}` examples are current supported props such as `EmptyPlaceholder` | +| Status | Page | Reason | +| -------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| in PR | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` | v13 to v14 migration guide drafted in `docs-content#1080`; keep aligned with post-snapshot changes such as Search, MessageEditedIndicator, current Giphy/composer behavior, the `ChannelListUI` migration, the latest action-set/error/unread changes, the latest channel-list hook cleanup, the stylesheet import-path cleanup, the latest reactions/icon follow-up work, the avatar-overflow follow-up from `49d576e4`, and the latest deprecated-API purge plus sidebar-state externalization until merged | +| in PR | `data/docs/_sidebars/[chat-sdk][react][v14-rc].json` | Nav label and migration guide metadata are updated in `docs-content#1080`; merge pending | +| resolved | `data/docs/chat-sdk/react/v14/06-release-guides/01-upgrade-to-v14.md` | Now covers sidebar-state externalization and the final deprecated-API cleanup from the stable-prep window | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Now treats sidebar state as app-owned and no longer documents removed `initialNavOpen` or `navOpen`-based SDK state | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/02-chat_context.md` | Now reflects the current `ChatContext` shape without removed nav-state fields | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Now uses `HeaderStartContent` for app-owned sidebar controls instead of the removed `MenuIcon` prop | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/03-channel_list_hooks.md` | Now documents only the current channel-list hook surface | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Now documents `latestMessagePreview` only and no longer exposes the removed alias | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/01-message_list.md` | Removed the dead `pinPermissions` guidance and now points pinning decisions at channel capabilities | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/02-virtualized_list.md` | Removed the dead `pinPermissions` guidance and now points pinning decisions at channel capabilities | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Removed `pinPermissions` and now treats pinning as capability-driven | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-composer/06-emoji-picker.md` | Replaced the removed `popperOptions` prop with the current `placement` guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Replaced the removed `refreshing` props with the current `isLoading` contract | +| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Now documents `quick-dropdown-toggle`, preserves it in filtered action-set examples, and explains that `markUnread` is only available for foreign messages | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Now preserves the default dropdown toggle, documents the own-message `markUnread` restriction, and keeps action-set examples aligned with the current base filter | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Now explains why starting from `defaultMessageActionSet` preserves the current dropdown trigger and default filtering | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Now documents the current `handleDelete()` failure semantics and local removal for unsent or network-failed messages | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Bounce prompt example now treats delete as async and documents the current failed-message delete behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | `useDeleteHandler()` and `useMarkUnreadHandler()` examples now match the current async delete flow and foreign-message-only unread behavior | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Custom message action examples now wrap `handleDelete()` in async handlers that match the current SDK behavior | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Removed the dead `MessageErrorIcon` import and replaced it with an app-owned failed-message indicator example | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Now calls out that the default `Mark as unread` action is limited to foreign messages | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/*` | Swept to the `MessageComposer*` naming set, current hooks, and scoped `WithComponents` guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/*` | Message-list docs now use `reactionDetailsSort`, remove the deprecated reaction-detail comparator props, and stay aligned with the current notification/composer surfaces | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/*` | Channel-list docs now align with `ChannelListUI`, `ChannelListItemUI`, `WithComponents`, and the current `str-chat__channel-list-inner*` selectors | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/01-channel_list.md` | Search guidance remains current, and the page now documents channel-list customization through `ChannelListUI` / `ChannelListItemUI` with `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/02-channel_list_context.md` | Search guidance remains current, and the examples now use `ChannelListUI` plus `WithComponents` instead of `ChannelListMessenger` / `List` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/05-channel_search.md` | Rewritten around stable `Search`, its current prop surface, and `WithComponents` customization | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/02-channel_search.md` | Rewritten to stable Search customization patterns and current `SearchController` guidance | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/08-app_menu.md` | Rewritten to a custom `SearchBar` composition example instead of the removed `ChannelSearch AppMenu` prop | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/08-advanced-search.md` | Rewritten as a stable advanced Search guide using `SearchController`, restored filter-builder guidance, and stable `stream-chat-react` imports | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/01-channel.md` | Now keeps `Channel` focused on current behavior/data props and points SDK UI overrides to `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/05-component_context.md` | Now reflects the current override-key surface, including `NotificationList`, `ImagePlaceholder`, `ChannelListUI`, `ContextMenu`, `ContextMenuContent`, and current `WithComponents` guidance | +| resolved | `data/docs/chat-sdk/react/v14/01-basics/02-installation.md` | Now calls out the current `stream-chat` minimum, version-alignment guidance, and the root `dist/css/index.css` import path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/07-ui-components.md` | Rewritten to the current deleted-message, message-status, edited-indicator, message-text, and bounce-prompt surfaces | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/05-message_ui.md` | Rewritten around the current message UI composition without `FixedHeightMessage` or `MessageOptions` | +| resolved | `data/docs/chat-sdk/react/v14/05-experimental-features/01-message-actions.md` | Rewritten to the stable `MessageActions` model with `messageActionSet`, quick actions, and `ContextMenu` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/02-message_context.md` | Now reflects the current `reactionDetailsSort`-only reaction-detail customization surface in addition to the current delete behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/01-message.md` | Now reflects the current `Message` prop surface without the removed `sortReactionDetails` comparator | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/02-message_input_context.md` | Rewritten to the current `MessageComposerContext` surface and dedicated cooldown helpers | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/03-message_input_hooks.md` | Rewritten to the currently exported composer hooks, including `useMessageContentIsEmpty` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/01-input_ui.md` | Rewritten to current composer building blocks, `useCooldownRemaining()`, and the default command-selected layout behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/04-message_hooks.md` | Rewritten without `useEditHandler` and aligned to the current edit flow | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/01-attachment.md` | Rewritten to the current `Attachment` grouping, supported override points, the `Image` / `Media` / `ModalGallery` split, and the inline `Giphy` path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/10-poll.md` | Rewritten to the current poll override surface and quoted-message guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/12-reactions.md` | Now reflects the current `reactionDetailsSort`, `reactionGroups`, and `reaction_groups`-only `MessageReactions` contract | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/02-reactions.md` | Cookbook now keeps `reactionOptions` customization in `WithComponents` and no longer implies direct `MessageReactions` props | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/05-channel_read_state.md` | Rewritten to the current unread, new-message, `NotificationList`, and scroll-to-latest model | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/13-notifications.md` | Rewritten around `NotificationList`, panel-targeted client notifications, `MessageListMainPanel`, and the direct floating-notification override points | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/08-avatar.md` | Now explains the current `displayMembers` plus automatic-overflow model and no longer implies caller-controlled overflow handling | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/07-sdk-state-management.md` | Channel-list state example now registers custom row UI through `WithComponents` / `ChannelListItemUI` instead of the removed `ChannelList Preview={...}` path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/04-channel_preview_ui.md` | Preview-content guidance remains current, and the page now registers custom rows through `WithComponents` / `ChannelListItemUI` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/05-channel-list/06-channel-list-infinite-scroll.md` | `options.limit` guidance remains current, and the styling example now points at `.str-chat__channel-list-inner__main` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/02-channel-list/01-channel_list_preview.md` | Display helpers remain current, and the cookbook now starts from a `ChannelListItemUI` override registered through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/10-thread_header.md` | Rewritten to current `ThreadHeader` behavior, current `Avatar` props, and the `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/06-suggestion_list.md` | Rewritten to `SuggestionList`, current suggestion item contracts, current `Avatar` props, and the `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/01-message_ui.md` | Rewritten to current `WithComponents` registration, `Avatar` props, and reaction wiring | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/06-system_message.md` | Rewritten to current `WithComponents` registration and `Avatar` props | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/04-message_actions.md` | Rewritten to current `MessageActions`, `defaultMessageActionSet`, and `WithComponents` customization | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/04-message/05-pin_indicator.md` | Updated to current `WithComponents` registration for `PinIndicator` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/04-giphy_preview.md` | Updated to register `GiphyPreviewMessage` through `WithComponents` and to distinguish ephemeral `/giphy` previews from sent inline giphy attachments | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/07-emoji_picker.md` | Updated to register `EmojiPicker` through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/11-blocking-users.md` | Updated custom blocking action guidance to the current `MessageActions` model | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/12-message-reminders.md` | Updated reminder override example to use `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/14-location-sharing.md` | Updated location-sharing override examples to use `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/03-component-variables.md` | Added a note clarifying that a few CSS token groups intentionally retain historical `stream-chat-css` names | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/11-chat-view.md` | Rewritten to current `ChatView.Selector` and `ThreadAdapter` behavior, including `iconOnly={false}`, `aria-pressed`, and placeholder/blank-state guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/06-thread-list/01-thread-list.md` | Updated to current `ChatView.ThreadAdapter` placeholder behavior and the current labeled-selector example | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/07-message-list/05-thread.md` | Rewritten to current `Thread` props and `WithComponents`-based thread-surface overrides | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/04-channel/02-channel_header.md` | Now points `MenuIcon` at the current `IconSidebar` default and matches the post-Phosphor icon catalog | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/16-modal.md` | Rewritten to the `GlobalModal` public surface and `WithComponents` modal override pattern | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/10-dialog-management.md` | Rewritten around current dialog primitives, `GlobalModal`, `DialogManagerProvider closeOnClickOutside`, and the current `ContextMenu`/transition configuration surface | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/15-audio-playback.md` | Updated to the current `FileIcon` prop surface | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/01-message_input.md` | Rewritten around the current `MessageComposer` props, scoped `MessageComposerUI` overrides, and v14 composer behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/04-input_ui.md` | Rewritten to current `MessageComposerUI` composition, scoped `WithComponents` usage, and the default command-selected layout behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/08-attachment-selector.md` | Rewritten to the current selector action contract, `WithComponents` override path, and the default command-selected composer behavior | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/05-ui_components.md` | Rewritten to current input building blocks, `LinkPreviewList` props, `VoiceRecordingPreviewSlot`, and the default command-selected layout behavior | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/02-link-previews.md` | Rewritten to the current `LinkPreviewList` contract, `displayLinkCount`, and `WithComponents` override path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/03-attachment_previews.md` | Rewritten to the current attachment preview model with `VoiceRecordingPreviewSlot` separated from `AttachmentPreviewList` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/02-image_gallery.md` | Rewritten around the `ModalGallery` override path and the lower-level `Gallery` provider split | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/11-attachment/02-voice-recording.md` | Voice-recording customization example now mounts the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/01-attachment_actions.md` | Attachment-actions cookbook now uses `WithComponents` for attachment overrides and refreshed imports | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/03-geolocation_attachment.md` | Geolocation attachment cookbook now registers the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/06-attachment/05-payment_attachment.md` | Payment attachment cookbook now registers the custom attachment renderer through `WithComponents` | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/01-getting_started.md` | Updated styling examples to current header selectors and the root `dist/css/index.css` import path | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/02-theming/01-themingv2.md` | Updated the page to CSS-only import snippets under the root `dist/css/*` entrypoints, including the layout-only examples | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/13-date_separator.md` | Rewritten to the current default separator behavior and custom-separator guidance | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/09-channel_header.md` | The custom header example now relies on `displayMembers` only and lets `ChannelAvatar` compute overflow automatically | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/03-chat/01-chat.md` | Rewritten to the current sidebar-state behavior after the temporary RC-only responsive-nav prop was removed, and now reflects the current `str-chat__channel-list` root class | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/09-base-image.md` | Updated to the current `BaseImage` fallback behavior, broader internal usage, `showDownloadButtonOnError` default, and `ImagePlaceholder` override path | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/08-date-time-formatting.md` | Updated to the current time-only `MessageTimestamp` default and the `MessageEditedIndicator`-based edited-time customization path | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/03-message-list/02-connection_status.md` | Updated to the current notification-stack model so `ConnectionStatus` is documented alongside `NotificationList` and `MessageListMainPanel` correctly | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/12-indicators.md` | Rewritten to the current `TypingIndicator` / `TypingIndicatorHeader` split and current prop contract | +| resolved | `data/docs/chat-sdk/react/v14/03-ui-cookbook/05-message-input/07-typing_indicator.md` | Rewritten to the current custom typing-indicator contract and header typing guidance | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/08-message/03-message_bounce_context.md` | Rewritten to the current bounce-prompt contract without removed close props | +| resolved | `data/docs/chat-sdk/react/v14/02-ui-components/09-message-input/07-audio_recorder.md` | Rewritten to current recorder overrides, permission flow, and voice-recording send behavior | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/04-typescript_and_custom_data_types.md` | Warning now reflects the remaining default helpers/components that still rely on `DefaultChannelData` fields | +| resolved | `data/docs/chat-sdk/react/v14/04-guides/16-ai-integrations/02-chat-sdk-integration.md` | Custom message examples now read SDK state from `useMessageContext()` instead of assuming injected `MessageUIComponentProps` | +| resolved | `data/docs/chat-sdk/react/v14/07-troubleshooting/01-troubleshooting.md` | Updated Giphy guidance to the current `giphyVersion` default and clarified that the same setting affects preview thumbnails as well | +| resolved | `data/docs/chat-sdk/react/v14` (multiple pages) | Repo-wide sweep is complete; remaining `Channel X={...}` examples are current supported props such as `EmptyPlaceholder` | ## Breaking Change Workflow