@cometchat/skills 4.2.1 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -12
  3. package/bin/install.js +59 -4
  4. package/package.json +14 -1
  5. package/skills/cometchat/SKILL.md +460 -77
  6. package/skills/cometchat/references/asking-questions.md +48 -0
  7. package/skills/cometchat-a11y/SKILL.md +3 -2
  8. package/skills/cometchat-android-v5/SKILL.md +2 -1
  9. package/skills/cometchat-android-v5-calls/SKILL.md +36 -22
  10. package/skills/cometchat-android-v5-calls/references/README.md +1 -1
  11. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +7 -5
  12. package/skills/cometchat-android-v5-calls/references/audio-controls.md +4 -4
  13. package/skills/cometchat-android-v5-calls/references/call-layouts.md +33 -25
  14. package/skills/cometchat-android-v5-calls/references/call-session.md +2 -2
  15. package/skills/cometchat-android-v5-calls/references/custom-ui.md +5 -5
  16. package/skills/cometchat-android-v5-calls/references/event-listeners.md +2 -2
  17. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +20 -14
  18. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +1 -1
  19. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +43 -27
  20. package/skills/cometchat-android-v5-calls/references/participant-management.md +3 -3
  21. package/skills/cometchat-android-v5-calls/references/raise-hand.md +25 -19
  22. package/skills/cometchat-android-v5-calls/references/recording.md +2 -2
  23. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +1 -1
  24. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +5 -9
  25. package/skills/cometchat-android-v5-calls/references/session-settings.md +3 -3
  26. package/skills/cometchat-android-v5-calls/references/setup.md +1 -1
  27. package/skills/cometchat-android-v5-calls/references/share-invite.md +9 -4
  28. package/skills/cometchat-android-v5-calls/references/video-controls.md +4 -4
  29. package/skills/cometchat-android-v5-calls/references/voip-calling.md +2 -2
  30. package/skills/cometchat-android-v5-components/SKILL.md +4 -3
  31. package/skills/cometchat-android-v5-core/SKILL.md +20 -2
  32. package/skills/cometchat-android-v5-customization/SKILL.md +171 -7
  33. package/skills/cometchat-android-v5-extensions/SKILL.md +7 -4
  34. package/skills/cometchat-android-v5-features/SKILL.md +5 -4
  35. package/skills/cometchat-android-v5-placement/SKILL.md +2 -1
  36. package/skills/cometchat-android-v5-production/SKILL.md +2 -1
  37. package/skills/cometchat-android-v5-push/SKILL.md +2 -3
  38. package/skills/cometchat-android-v5-testing/SKILL.md +2 -1
  39. package/skills/cometchat-android-v5-theming/SKILL.md +2 -1
  40. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +3 -2
  41. package/skills/cometchat-android-v6/SKILL.md +2 -1
  42. package/skills/cometchat-android-v6-builder-settings/SKILL.md +11 -7
  43. package/skills/cometchat-android-v6-calls/SKILL.md +79 -18
  44. package/skills/cometchat-android-v6-calls/references/advanced-features.md +87 -0
  45. package/skills/cometchat-android-v6-calls/references/call-layouts.md +24 -15
  46. package/skills/cometchat-android-v6-calls/references/call-session.md +2 -2
  47. package/skills/cometchat-android-v6-calls/references/device-management.md +17 -16
  48. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +7 -4
  49. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +13 -8
  50. package/skills/cometchat-android-v6-calls/references/raise-hand.md +6 -4
  51. package/skills/cometchat-android-v6-compose-components/SKILL.md +52 -29
  52. package/skills/cometchat-android-v6-compose-customization/SKILL.md +156 -1
  53. package/skills/cometchat-android-v6-compose-placement/SKILL.md +129 -40
  54. package/skills/cometchat-android-v6-compose-theming/SKILL.md +27 -1
  55. package/skills/cometchat-android-v6-core/SKILL.md +389 -9
  56. package/skills/cometchat-android-v6-events/SKILL.md +4 -1
  57. package/skills/cometchat-android-v6-extensions/SKILL.md +2 -1
  58. package/skills/cometchat-android-v6-features/SKILL.md +26 -2
  59. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +31 -1
  60. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +172 -1
  61. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +20 -5
  62. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +36 -5
  63. package/skills/cometchat-android-v6-migration/SKILL.md +44 -42
  64. package/skills/cometchat-android-v6-production/SKILL.md +6 -3
  65. package/skills/cometchat-android-v6-push/SKILL.md +43 -2
  66. package/skills/cometchat-android-v6-testing/SKILL.md +11 -8
  67. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +26 -5
  68. package/skills/cometchat-angular-calls/SKILL.md +256 -389
  69. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +3 -2
  70. package/skills/cometchat-angular-calls/references/call-layouts.md +29 -12
  71. package/skills/cometchat-angular-calls/references/call-session.md +2 -2
  72. package/skills/cometchat-angular-calls/references/custom-ui.md +18 -10
  73. package/skills/cometchat-angular-calls/references/device-management.md +53 -34
  74. package/skills/cometchat-angular-calls/references/group-calls.md +45 -24
  75. package/skills/cometchat-angular-calls/references/idle-timeout.md +31 -15
  76. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +7 -6
  77. package/skills/cometchat-angular-calls/references/raise-hand.md +9 -4
  78. package/skills/cometchat-angular-calls/references/recording-screen-share.md +32 -39
  79. package/skills/cometchat-angular-calls/references/ringing-integration.md +3 -1
  80. package/skills/cometchat-angular-calls/references/share-invite.md +11 -5
  81. package/skills/cometchat-angular-calls/references/virtual-background.md +29 -0
  82. package/skills/cometchat-angular-components/SKILL.md +149 -620
  83. package/skills/cometchat-angular-core/SKILL.md +235 -293
  84. package/skills/cometchat-angular-customization/SKILL.md +415 -223
  85. package/skills/cometchat-angular-features/SKILL.md +216 -334
  86. package/skills/cometchat-angular-patterns/SKILL.md +168 -359
  87. package/skills/cometchat-angular-placement/SKILL.md +189 -560
  88. package/skills/cometchat-angular-production/SKILL.md +241 -92
  89. package/skills/cometchat-angular-push/SKILL.md +280 -294
  90. package/skills/cometchat-angular-testing/SKILL.md +430 -158
  91. package/skills/cometchat-angular-theming/SKILL.md +190 -265
  92. package/skills/cometchat-angular-troubleshooting/SKILL.md +192 -157
  93. package/skills/cometchat-astro-patterns/SKILL.md +22 -1
  94. package/skills/cometchat-calls/SKILL.md +25 -19
  95. package/skills/cometchat-calls/references/use-case-broadcast.md +15 -10
  96. package/skills/cometchat-calls/references/use-case-marketplace.md +2 -3
  97. package/skills/cometchat-calls/references/use-case-support.md +3 -4
  98. package/skills/cometchat-calls/references/use-case-team.md +23 -12
  99. package/skills/cometchat-calls/references/use-case-telehealth.md +3 -4
  100. package/skills/cometchat-components/SKILL.md +163 -25
  101. package/skills/cometchat-core/SKILL.md +412 -13
  102. package/skills/cometchat-customization/SKILL.md +50 -25
  103. package/skills/cometchat-features/SKILL.md +313 -34
  104. package/skills/cometchat-flutter-v5/SKILL.md +10 -4
  105. package/skills/cometchat-flutter-v5-calls/SKILL.md +188 -158
  106. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +48 -24
  107. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +20 -15
  108. package/skills/cometchat-flutter-v5-calls/references/call-session.md +100 -145
  109. package/skills/cometchat-flutter-v5-calls/references/device-management.md +12 -8
  110. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +30 -36
  111. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +15 -13
  112. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +12 -9
  113. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +115 -65
  114. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +41 -30
  115. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +17 -14
  116. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +8 -2
  117. package/skills/cometchat-flutter-v5-conversations/SKILL.md +2 -1
  118. package/skills/cometchat-flutter-v5-core/SKILL.md +20 -2
  119. package/skills/cometchat-flutter-v5-customization/SKILL.md +136 -5
  120. package/skills/cometchat-flutter-v5-events/SKILL.md +2 -1
  121. package/skills/cometchat-flutter-v5-messages/SKILL.md +2 -1
  122. package/skills/cometchat-flutter-v5-production/SKILL.md +15 -6
  123. package/skills/cometchat-flutter-v5-push/SKILL.md +2 -1
  124. package/skills/cometchat-flutter-v5-testing/SKILL.md +17 -6
  125. package/skills/cometchat-flutter-v5-theming/SKILL.md +2 -1
  126. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +7 -6
  127. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +3 -2
  128. package/skills/cometchat-flutter-v6/SKILL.md +17 -16
  129. package/skills/cometchat-flutter-v6-calls/SKILL.md +78 -63
  130. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +8 -6
  131. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +89 -0
  132. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +15 -12
  133. package/skills/cometchat-flutter-v6-calls/references/call-session.md +2 -2
  134. package/skills/cometchat-flutter-v6-calls/references/device-management.md +9 -3
  135. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +10 -10
  136. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +15 -7
  137. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +6 -3
  138. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +23 -16
  139. package/skills/cometchat-flutter-v6-components/SKILL.md +32 -11
  140. package/skills/cometchat-flutter-v6-conversations/SKILL.md +39 -11
  141. package/skills/cometchat-flutter-v6-core/SKILL.md +348 -10
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +97 -25
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +3 -2
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +15 -6
  145. package/skills/cometchat-flutter-v6-messages/SKILL.md +111 -60
  146. package/skills/cometchat-flutter-v6-migration/SKILL.md +18 -25
  147. package/skills/cometchat-flutter-v6-placement/SKILL.md +79 -50
  148. package/skills/cometchat-flutter-v6-production/SKILL.md +13 -12
  149. package/skills/cometchat-flutter-v6-push/SKILL.md +43 -21
  150. package/skills/cometchat-flutter-v6-testing/SKILL.md +6 -6
  151. package/skills/cometchat-flutter-v6-theming/SKILL.md +38 -5
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +182 -17
  153. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +12 -4
  154. package/skills/cometchat-i18n/SKILL.md +139 -78
  155. package/skills/cometchat-ios/SKILL.md +4 -2
  156. package/skills/cometchat-ios-calls/SKILL.md +225 -95
  157. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +11 -9
  158. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +45 -0
  159. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +6 -7
  160. package/skills/cometchat-ios-calls/references/call-layouts.md +31 -91
  161. package/skills/cometchat-ios-calls/references/call-session.md +51 -54
  162. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +33 -29
  163. package/skills/cometchat-ios-calls/references/custom-ui.md +38 -38
  164. package/skills/cometchat-ios-calls/references/group-calls.md +33 -70
  165. package/skills/cometchat-ios-calls/references/idle-timeout.md +24 -25
  166. package/skills/cometchat-ios-calls/references/in-call-chat.md +19 -23
  167. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +128 -70
  168. package/skills/cometchat-ios-calls/references/picture-in-picture.md +20 -20
  169. package/skills/cometchat-ios-calls/references/raise-hand.md +14 -227
  170. package/skills/cometchat-ios-calls/references/recording-screen-share.md +35 -122
  171. package/skills/cometchat-ios-calls/references/ringing-integration.md +17 -16
  172. package/skills/cometchat-ios-calls/references/share-invite.md +8 -12
  173. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +4 -4
  174. package/skills/cometchat-ios-components/SKILL.md +200 -12
  175. package/skills/cometchat-ios-core/SKILL.md +281 -11
  176. package/skills/cometchat-ios-customization/SKILL.md +276 -110
  177. package/skills/cometchat-ios-features/SKILL.md +64 -36
  178. package/skills/cometchat-ios-placement/SKILL.md +15 -12
  179. package/skills/cometchat-ios-production/SKILL.md +12 -4
  180. package/skills/cometchat-ios-push/SKILL.md +53 -19
  181. package/skills/cometchat-ios-testing/SKILL.md +14 -9
  182. package/skills/cometchat-ios-theming/SKILL.md +39 -3
  183. package/skills/cometchat-ios-troubleshooting/SKILL.md +41 -21
  184. package/skills/cometchat-native-bare-patterns/SKILL.md +56 -18
  185. package/skills/cometchat-native-calls/SKILL.md +89 -19
  186. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +2 -2
  187. package/skills/cometchat-native-calls/references/call-layouts.md +15 -14
  188. package/skills/cometchat-native-calls/references/call-session.md +2 -2
  189. package/skills/cometchat-native-calls/references/custom-ui.md +12 -8
  190. package/skills/cometchat-native-calls/references/device-management.md +53 -30
  191. package/skills/cometchat-native-calls/references/group-calls.md +35 -30
  192. package/skills/cometchat-native-calls/references/idle-timeout.md +6 -6
  193. package/skills/cometchat-native-calls/references/in-call-chat.md +10 -8
  194. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +2 -2
  195. package/skills/cometchat-native-calls/references/raise-hand.md +15 -13
  196. package/skills/cometchat-native-calls/references/recording-screen-share.md +49 -170
  197. package/skills/cometchat-native-calls/references/share-invite.md +7 -5
  198. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +4 -2
  199. package/skills/cometchat-native-components/SKILL.md +91 -57
  200. package/skills/cometchat-native-core/SKILL.md +281 -9
  201. package/skills/cometchat-native-customization/SKILL.md +150 -28
  202. package/skills/cometchat-native-expo-patterns/SKILL.md +77 -27
  203. package/skills/cometchat-native-features/SKILL.md +79 -49
  204. package/skills/cometchat-native-placement/SKILL.md +19 -10
  205. package/skills/cometchat-native-production/SKILL.md +9 -3
  206. package/skills/cometchat-native-push/SKILL.md +2 -1
  207. package/skills/cometchat-native-testing/SKILL.md +1 -2
  208. package/skills/cometchat-native-theming/SKILL.md +54 -29
  209. package/skills/cometchat-native-troubleshooting/SKILL.md +71 -3
  210. package/skills/cometchat-nextjs-patterns/SKILL.md +48 -6
  211. package/skills/cometchat-placement/SKILL.md +42 -3
  212. package/skills/cometchat-production/SKILL.md +12 -5
  213. package/skills/cometchat-react-calls/SKILL.md +220 -10
  214. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +4 -3
  215. package/skills/cometchat-react-calls/references/call-layouts.md +5 -6
  216. package/skills/cometchat-react-calls/references/call-session.md +1 -1
  217. package/skills/cometchat-react-calls/references/custom-ui.md +61 -15
  218. package/skills/cometchat-react-calls/references/device-management.md +55 -51
  219. package/skills/cometchat-react-calls/references/group-calls.md +18 -23
  220. package/skills/cometchat-react-calls/references/idle-timeout.md +25 -12
  221. package/skills/cometchat-react-calls/references/in-call-chat.md +7 -7
  222. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +9 -11
  223. package/skills/cometchat-react-calls/references/raise-hand.md +14 -14
  224. package/skills/cometchat-react-calls/references/recording-screen-share.md +39 -38
  225. package/skills/cometchat-react-calls/references/ringing-integration.md +2 -2
  226. package/skills/cometchat-react-calls/references/share-invite.md +4 -5
  227. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +20 -2
  228. package/skills/cometchat-react-calls/references/virtual-background.md +32 -0
  229. package/skills/cometchat-react-patterns/SKILL.md +57 -4
  230. package/skills/cometchat-react-push/SKILL.md +258 -72
  231. package/skills/cometchat-react-router-patterns/SKILL.md +43 -4
  232. package/skills/cometchat-react-testing/SKILL.md +14 -5
  233. package/skills/cometchat-theming/SKILL.md +181 -18
  234. package/skills/cometchat-troubleshooting/SKILL.md +40 -20
@@ -3,7 +3,6 @@ name: cometchat-native-components
3
3
  description: "Component catalog for the CometChat React Native UI Kit v5 — names, props, slot views, request builders, hide flags, style shape. Always loaded before writing CometChat* JSX."
4
4
  license: "MIT"
5
5
  compatibility: "Node.js >=18; React Native >=0.70; @cometchat/chat-uikit-react-native ^5"
6
- allowed-tools: "shell, file-read, file-search, file-list, ask-user"
7
6
  metadata:
8
7
  author: "CometChat"
9
8
  version: "3.0.0"
@@ -16,7 +15,7 @@ Teaches Claude every component the React Native UI Kit exports, with the props,
16
15
 
17
16
  **Read this skill before writing any `<CometChat*>` JSX.**
18
17
 
19
- Ground truth: `packages/ChatUiKit/src/index.ts` from the UI Kit source + `docs/ui-kit/react-native/components-overview.mdx` + per-component doc pages.
18
+ Ground truth: `packages/ChatUiKit/src/index.ts` from the UI Kit source + `docs/ui-kit/react-native/components-overview.mdx` + per-component doc pages. **Official docs:** https://www.cometchat.com/docs/ui-kit/react-native/components-overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP).
20
19
 
21
20
  ---
22
21
 
@@ -24,6 +23,8 @@ Ground truth: `packages/ChatUiKit/src/index.ts` from the UI Kit source + `docs/u
24
23
 
25
24
  The React Native UI Kit is a set of independent components that you compose into chat layouts. Three patterns cover almost every use case:
26
25
 
26
+ > ⛔ **Only the components in THIS catalog exist — do not invent or recall names from v4/older memory.** Before emitting ANY `CometChat*` component, confirm it's in this catalog; if it's not here, it doesn't exist (→ unresolved-import build failure). **There is no all-in-one component:** the v4 composites `CometChatConversationsWithMessages`, `CometChatUsersWithMessages`, `CometChatGroupsWithMessages`, the `CometChatMessages` composite, and the `CometChatUI` god-component are all **absent in this RN kit** (verified against its exports) — compose the panes yourself per the table below. This is the #1 v4-memory hallucination.
27
+
27
28
  | Pattern | Components |
28
29
  |---|---|
29
30
  | **Two-pane** (inbox) | `CometChatConversations` + `CometChatMessageHeader` + `CometChatMessageList` + `CometChatMessageComposer` |
@@ -44,13 +45,13 @@ Four prop families you'll see across the catalog:
44
45
  |---|---|---|
45
46
  | **Callback** | `on<Event>={(param) => void}` | `onItemPress={(conv) => ...}` • `onError={(err) => ...}` • `onSendButtonPress={(msg) => ...}` |
46
47
  | **Request builder** | `<entity>RequestBuilder={new CometChat.<Entity>RequestBuilder()}` | `conversationsRequestBuilder={new CometChat.ConversationsRequestBuilder().setLimit(20)}` |
47
- | **Hide / visibility toggle** | `hide<Feature>={boolean}` \| `<feature>Visibility={boolean}` | `hideReceipts={true}` • `hideReplyInThreadOption={true}` |
48
- | **View slot (replace a section)** | `<Slot>View={(params) => JSX}` — **PascalCase**, returns JSX | `TitleView={(user, group) => <MyTitle />}` • `LeadingView={(u, g) => <MyAvatar />}` |
49
- | **Style** | `style={{ containerStyle: {}, itemStyle: { ... } }}` | see § 13 Style shape |
48
+ | **Hide / visibility toggle** | `hide<Feature>={boolean}` \| `<feature>Visibility={boolean}` | `receiptsVisibility={true}` • `hideReplyInThreadOption={true}` |
49
+ | **View slot (replace a section)** | `<Slot>View={(params) => JSX}` — **PascalCase**, returns JSX | `TitleView={({ user, group }) => <MyTitle />}` • `LeadingView={({ user, group }) => <MyAvatar />}` |
50
+ | **Style** | `style={{ containerStyle: {}, itemStyle: { ... } }}` | see § 14 Style shape |
50
51
 
51
52
  **On-events take positional args, not an event object.** `onItemPress={(conversation) => ...}` receives the `CometChat.Conversation` directly — no `event.target`.
52
53
 
53
- **Slot views are capitalized**: `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `EmptyStateView`, `ErrorStateView`, `LoadingStateView`, `AuxiliaryButtonView`. Each slot function gets the same props the default view would have (usually `user, group` or a single entity).
54
+ **Slot views are capitalized**: `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `EmptyView`, `ErrorView`, `LoadingView`, `AuxiliaryButtonView`, `ItemView`. Each slot function receives a **single destructured object** typically `({ user, group }) => JSX` NOT positional `(user, group)` args.
54
55
 
55
56
  **Style is nested objects.** Top-level `style` accepts `containerStyle` (outermost wrapper) then component-specific keys. Each inner style is a regular React Native `StyleSheet` object.
56
57
 
@@ -79,12 +80,12 @@ import { CometChat } from "@cometchat/chat-sdk-react-native";
79
80
  }}
80
81
  onError={(err) => console.error(err)}
81
82
  hideHeader={false}
82
- hideReceipts={false}
83
+ receiptsVisibility={true}
83
84
  style={{ containerStyle: { backgroundColor: "#fff" } }}
84
85
  />
85
86
  ```
86
87
 
87
- Key props: `conversationsRequestBuilder`, `onItemPress`, `onItemLongPress`, `onError`, `onEmpty`, `hideReceipts`, `hideHeader`, `hideSearch`, `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `EmptyStateView`, `ErrorStateView`, `LoadingStateView`, `BackdropView`, `style`.
88
+ Key props: `conversationsRequestBuilder`, `onItemPress`, `onItemLongPress`, `onError`, `onEmpty`, `receiptsVisibility` (default `true`), `hideHeader`, `showSearchBar` (default `false`), `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `EmptyView`, `ErrorView`, `LoadingView`, `style`.
88
89
 
89
90
  ### CometChatUsers
90
91
 
@@ -93,11 +94,11 @@ Key props: `conversationsRequestBuilder`, `onItemPress`, `onItemLongPress`, `onE
93
94
  usersRequestBuilder={new CometChat.UsersRequestBuilder().setLimit(30)}
94
95
  onItemPress={(user) => openChatWith(user)}
95
96
  searchKeyword=""
96
- hideStatus={false}
97
+ usersStatusVisibility={true}
97
98
  />
98
99
  ```
99
100
 
100
- Key props: `usersRequestBuilder`, `onItemPress`, `onError`, `onEmpty`, `searchKeyword`, `hideStatus`, `hideSearch`, `LeadingView`, `TitleView`, `SubtitleView`, `EmptyStateView`, `ErrorStateView`, `LoadingStateView`, `style`.
101
+ Key props: `usersRequestBuilder`, `onItemPress`, `onError`, `onEmpty`, `searchKeyword`, `usersStatusVisibility` (default `true`), `LeadingView`, `TitleView`, `SubtitleView`, `EmptyView`, `ErrorView`, `LoadingView`, `style`.
101
102
 
102
103
  ### CometChatGroups
103
104
 
@@ -110,7 +111,7 @@ Key props: `usersRequestBuilder`, `onItemPress`, `onError`, `onEmpty`, `searchKe
110
111
  />
111
112
  ```
112
113
 
113
- Key props: same shape as Users, with `groupsRequestBuilder` instead.
114
+ Key props: same shape as Users, with `groupsRequestBuilder` instead — plus a `hideSearch` flag (Groups has one; Users does not). Slot views are `EmptyView` / `ErrorView` / `LoadingView`.
114
115
 
115
116
  ### CometChatGroupMembers
116
117
 
@@ -126,7 +127,7 @@ Key props: same shape as Users, with `groupsRequestBuilder` instead.
126
127
  />
127
128
  ```
128
129
 
129
- Key props: `group` (**required** — pass a `CometChat.Group` instance), `groupMemberRequestBuilder`, `onItemPress`, `onError`, `onBack`, `hideKickMemberOption`, `hideBanMemberOption`, `hideChangeScopeOption`, slot views for each row section, `style`.
130
+ Key props: `group` (**required** — pass a `CometChat.Group` instance), `groupMemberRequestBuilder`, `onItemPress`, `onError` (no args — `() => void`), `showBackButton` (toggle the back button; there is no `onBack` prop), `hideKickMemberOption`, `hideBanMemberOption`, `hideScopeChangeOption`, slot views for each row section, `style`.
130
131
 
131
132
  ---
132
133
 
@@ -137,15 +138,15 @@ Key props: `group` (**required** — pass a `CometChat.Group` instance), `groupM
137
138
  ```tsx
138
139
  <CometChatMessageHeader
139
140
  user={selectedUser} // OR group — never both
140
- hideBackButton={false}
141
+ showBackButton={true}
141
142
  onBack={() => navigation.goBack()}
142
- AuxiliaryButtonView={(user, group) => <CometChatCallButtons user={user} group={group} />}
143
- TitleView={(user, group) => <CustomTitle />}
144
- SubtitleView={(user, group) => <CustomSubtitle />}
143
+ AuxiliaryButtonView={({ user, group }) => <CometChatCallButtons user={user} group={group} />}
144
+ TitleView={({ user, group }) => <CustomTitle />}
145
+ SubtitleView={({ user, group }) => <CustomSubtitle />}
145
146
  />
146
147
  ```
147
148
 
148
- Key props: `user` OR `group` (one required), `hideBackButton`, `hideVideoCallButton`, `hideVoiceCallButton`, `onBack`, `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `AuxiliaryButtonView`, `BackButtonIconImageResource`, `style`.
149
+ Key props: `user` OR `group` (one required), `showBackButton` (default `false`), `hideVideoCallButton`, `hideVoiceCallButton`, `onBack`, `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `AuxiliaryButtonView`, `ItemView`, `style`. All slot views take a single object — `({ user, group }) => JSX`, NOT positional `(user, group)`.
149
150
 
150
151
  ### CometChatMessageList
151
152
 
@@ -159,16 +160,16 @@ Scrollable message feed. Handles reactions, receipts, mentions, threads, and med
159
160
  .setUID(selectedUser.getUid())
160
161
  .setLimit(30)
161
162
  }
162
- hideReplyInThreadOption={true} // SEE HARD RULE § 11
163
- hideReceipts={false}
163
+ hideReplyInThreadOption={true} // SEE HARD RULE § 12
164
+ receiptsVisibility={true}
164
165
  onThreadRepliesPress={(message, bubbleView) => openThreadPanel(message)}
165
166
  onError={(err) => console.error(err)}
166
- EmptyStateView={() => <Text>No messages yet</Text>}
167
+ EmptyView={() => <Text>No messages yet</Text>}
167
168
  style={{ containerStyle: { backgroundColor: "#fff" } }}
168
169
  />
169
170
  ```
170
171
 
171
- Key props: `user` OR `group`, `parentMessageId` (for thread replies), `messageRequestBuilder`, `goToMessageId` (scroll-to-message), `searchKeyword` (highlight in bubbles), `textFormatters`, `templates` (custom message type rendering — `CometChatMessageTemplate[]`), `hideReplyInThreadOption` **see hard rule § 11**, `hideReceipts`, `hideReactions`, `hideReplyOption`, `hideEditMessageOption`, `hideDeleteMessageOption`, `hideTranslateMessageOption`, `hideMessagePrivatelyOption`, `hideDateSeparator`, `onThreadRepliesPress`, `onMessageLongPress`, `onError`, all `*StateView` slots, `style`.
172
+ Key props: `user` OR `group`, `parentMessageId` (for thread replies), `messageRequestBuilder`, `goToMessageId` (scroll-to-message), `searchKeyword` (highlight in bubbles), `textFormatters`, `templates` (custom message type rendering — `CometChatMessageTemplate[]`), `hideReplyInThreadOption` **see hard rule § 12**, `receiptsVisibility` (default `true`), `hideReactionOption`, `hideReplyOption`, `hideEditMessageOption`, `hideDeleteMessageOption`, `hideTranslateMessageOption`, `hideMessagePrivatelyOption`, `hideCopyMessageOption`, `hideMessageInfoOption`, `hideFlagMessageOption`, `hideShareMessageOption`, `dateSeparatorPattern` (there is no `hideDateSeparator` flag), `onThreadRepliesPress`, `onError`, `EmptyView` / `ErrorView` / `LoadingView`, `style`.
172
173
 
173
174
  ### CometChatMessageComposer
174
175
 
@@ -177,7 +178,8 @@ Rich text input. Attachments, mentions, voice notes, sticker picker, reaction ke
177
178
  ```tsx
178
179
  <CometChatMessageComposer
179
180
  user={selectedUser}
180
- placeholderText="Type a message..."
181
+ initialComposertext="Type a message..."
182
+ keyboardAvoidingViewProps={Platform.OS === "android" ? {} : { behavior: "padding" }}
181
183
  onSendButtonPress={(message) => console.log("sent", message)}
182
184
  onError={(err) => console.error(err)}
183
185
  disableMentions={false}
@@ -185,12 +187,14 @@ Rich text input. Attachments, mentions, voice notes, sticker picker, reaction ke
185
187
  new CometChatMentionsFormatter(),
186
188
  new CometChatUrlsFormatter(),
187
189
  ]}
188
- AuxiliaryButtonView={() => <CustomAuxButton />}
189
- attachmentOptions={(user, group) => [ /* CometChatMessageComposerAction[] */ ]}
190
+ AuxiliaryButtonView={({ user, group }) => <CustomAuxButton />}
191
+ attachmentOptions={({ user, group }) => [ /* CometChatMessageComposerAction[] */ ]}
190
192
  />
191
193
  ```
192
194
 
193
- Key props: `user` OR `group`, `parentMessageId` (for thread composer), `placeholderText`, `onSendButtonPress`, `onError`, `onTextChanged`, `disableMentions`, `disableSoundForMessages`, `textFormatters`, `attachmentOptions`, `AuxiliaryButtonView`, `HeaderView`, `SendButtonView`, `VoiceRecordingView`, `AttachmentIconView`, `EmojiIconView`, `style`.
195
+ Key props: `user` OR `group`, `parentMessageId` (for thread composer), `initialComposertext`, `keyboardAvoidingViewProps`, `onSendButtonPress`, `onError`, `onTextChange`, `disableMentions`, `disableSoundForOutgoingMessages`, `textFormatters`, `attachmentOptions` (single-object `({ user, group }) =>`), `HeaderView`, `AuxiliaryButtonView`, `SendButtonView`, `style`.
196
+
197
+ **Keyboard avoidance is the composer's job.** The kit composer owns it via `keyboardAvoidingViewProps` — do **not** wrap Header/List/Composer in an external `KeyboardAvoidingView` (the kit sample app does not). Pass `{ behavior: "padding" }` on iOS, `{}` on Android (Android relies on the manifest's `android:windowSoftInputMode="adjustResize"`).
194
198
 
195
199
  ### CometChatCompactMessageComposer
196
200
 
@@ -204,7 +208,7 @@ Compact variant for small screens. Auto-expanding input, rich-text, attachments.
204
208
  />
205
209
  ```
206
210
 
207
- Use this instead of `CometChatMessageComposer` in drawers, widgets, or embedded placements. Same prop family.
211
+ Use this instead of `CometChatMessageComposer` in drawers, widgets, or embedded placements. Same prop family — but note the placeholder prop here is `placeHolderText` (capital H), distinct from the standard composer's `initialComposertext`.
208
212
 
209
213
  ### CometChatThreadHeader
210
214
 
@@ -213,11 +217,12 @@ Header for a threaded reply view — parent message + reply count + close.
213
217
  ```tsx
214
218
  <CometChatThreadHeader
215
219
  parentMessage={threadParent}
216
- onClose={() => setThreadMessage(null)}
217
- hideReplyCount={false}
220
+ replyCountVisibility={true}
218
221
  />
219
222
  ```
220
223
 
224
+ Key props: `parentMessage` (**required** — a `CometChat.BaseMessage`), `template` (`CometChatMessageTemplate`), `replyCountVisibility` (default `true`), `style`. There is no `onClose` prop — drive the panel's visibility from the parent's own state (see the threading composition below).
225
+
221
226
  **Threading composition:**
222
227
 
223
228
  ```tsx
@@ -232,7 +237,6 @@ Header for a threaded reply view — parent message + reply count + close.
232
237
  <>
233
238
  <CometChatThreadHeader
234
239
  parentMessage={threadMessage}
235
- onClose={() => setThreadMessage(null)}
236
240
  />
237
241
  <CometChatMessageList
238
242
  user={selectedUser}
@@ -259,46 +263,48 @@ Voice + video call initiators. Drop into `AuxiliaryButtonView` on `CometChatMess
259
263
  ```tsx
260
264
  <CometChatCallButtons
261
265
  user={selectedUser}
262
- onVoiceCallPress={(session) => navigation.navigate("OngoingCall", { session })}
263
- onVideoCallPress={(session) => navigation.navigate("OngoingCall", { session })}
264
266
  hideVideoCallButton={false}
265
267
  hideVoiceCallButton={false}
268
+ onError={(err) => console.error(err)}
266
269
  />
267
270
  ```
268
271
 
272
+ Key props: `user` OR `group`, `hideVideoCallButton`, `hideVoiceCallButton`, `callSettingsBuilder`, `onError`. There are no `onVoiceCallPress` / `onVideoCallPress` props — the kit initiates the call and emits the outgoing-call event itself (see `cometchat-native-features` §3d for wiring the resulting overlay).
273
+
269
274
  ### CometChatIncomingCall
270
275
 
271
- Incoming call notification. Render at the app root so it's visible on any screen.
276
+ Incoming call notification. **Parent-controlled — must be conditionally rendered when an incoming-call event fires on `CometChat.addCallListener`'s `onIncomingCallReceived`.** Render at the app root so it's visible on any screen.
277
+
278
+ > **DO NOT pass `onAccept`** — it short-circuits the kit's internal `acceptCall` + transition to `<CometChatOngoingCall>`. The kit fires `ccShowOngoingCall` after acceptance; let the parent's `CometChatUIEventHandler.addCallListener` mount the ongoing surface. Only handle `onDecline` + `onError`. See `cometchat-native-calls` §1.8.c and full wiring in `cometchat-native-features` §3d.
272
279
 
273
280
  ```tsx
274
281
  <CometChatIncomingCall
275
282
  call={incomingCall}
276
- onAccept={(call) => {}}
277
- onDecline={(call) => {}}
283
+ onDecline={() => setIncomingCall(null)}
284
+ onError={() => setIncomingCall(null)}
278
285
  disableSoundForCalls={false}
279
286
  />
280
287
  ```
281
288
 
282
289
  ### CometChatOutgoingCall
283
290
 
284
- Ringing-while-calling screen after `CometChat.initiateCall(...)`.
291
+ Ringing-while-calling screen. **Parent-controlled — NOT auto-mounted by `CometChatIncomingCall` or by tapping the call button.** To make the call button in `<CometChatMessageHeader>` actually mount this overlay, register `CometChatUIEventHandler.addCallListener` and listen for `ccOutgoingCall`. Full wiring template in `cometchat-native-features` §3d.
285
292
 
286
293
  ```tsx
287
294
  <CometChatOutgoingCall
288
295
  call={outgoingCall}
289
- onClosePress={() => {}}
296
+ onEndCallButtonPressed={(call) => {}}
290
297
  />
291
298
  ```
292
299
 
293
300
  ### CometChatOngoingCall
294
301
 
295
- In-call UI — tiles, controls, mute, end-call.
302
+ In-call UI — tiles, controls, mute, end-call. **Parent-controlled — NOT auto-mounted.** Mount when `CometChatUIEventHandler.addCallListener`'s `ccShowOngoingCall` event fires (kit emits this after `acceptCall` succeeds OR when the caller's outgoing call is accepted by the peer). Full wiring in `cometchat-native-features` §3d.
296
303
 
297
304
  ```tsx
298
305
  <CometChatOngoingCall
299
306
  sessionID={session.sessionId}
300
- callType="audio" // or "video"
301
- onCallEnded={() => navigation.goBack()}
307
+ callSettingsBuilder={callSettingsBuilder} // REQUIRED — a CometChatCalls.CallSettingsBuilder
302
308
  />
303
309
  ```
304
310
 
@@ -308,7 +314,7 @@ Scrollable call history.
308
314
 
309
315
  ```tsx
310
316
  <CometChatCallLogs
311
- callLogsRequestBuilder={/* CallLogRequest builder from calls-sdk */}
317
+ callLogRequestBuilder={/* CallLogRequest builder from calls-sdk */}
312
318
  onItemPress={(callLog) => openCallDetails(callLog)}
313
319
  />
314
320
  ```
@@ -350,14 +356,14 @@ Full-featured search across conversations + messages + users + groups. Scoped to
350
356
  uid={selectedUser?.getUid()} // optional — scope to one user's chat
351
357
  guid={selectedGroup?.getGuid()} // optional — scope to one group
352
358
  onBack={() => setShowSearch(false)}
353
- onConversationPress={(conv) => openConversation(conv)}
354
- onMessagePress={(msg) => scrollToMessage(msg)}
359
+ onConversationClicked={(conv, searchKeyword) => openConversation(conv)}
360
+ onMessageClicked={(msg, searchKeyword) => scrollToMessage(msg)}
355
361
  />
356
362
  ```
357
363
 
358
- Key props: `uid` / `guid` (scope), `searchKeyword`, `onBack`, `onConversationPress`, `onMessagePress`, `onUserPress`, `onGroupPress`, `hideConversations`, `hideMessages`, `hideUsers`, `hideGroups`, `style`.
364
+ Key props: `uid` / `guid` (scope), `searchKeyword`, `onBack`, `onConversationClicked` (`(conversation, searchKeyword?) => void`), `onMessageClicked` (`(message, searchKeyword?) => void`), `searchIn` (`CometChatSearchScope[]` — controls which categories are searched; there are no per-category `hide*` flags or `onUserPress` / `onGroupPress` callbacks), `style`.
359
365
 
360
- Wire from `CometChatMessageHeader`'s `onSearchPress`.
366
+ Mount it from your own UI (e.g. a search button in your screen's app bar) — `CometChatMessageHeader` does not expose a search callback.
361
367
 
362
368
  > **Hard rule — never roll your own search.** Any request involving
363
369
  > "search", "find messages", "search conversations", or "search across
@@ -369,7 +375,35 @@ Wire from `CometChatMessageHeader`'s `onSearchPress`.
369
375
 
370
376
  ---
371
377
 
372
- ## 6. Atoms (primitives for custom composition)
378
+ ## 6. Notifications
379
+
380
+ ### CometChatNotificationFeed
381
+
382
+ In-app notification feed UI — a full-screen, scrollable list of campaign/promotional notifications, each rendered as a native card (via `@cometchat/cards-react-native`). Handles fetching, pagination (infinite scroll), category filter chips, timestamp grouping, real-time WebSocket updates, pull-to-refresh, and read/delivered/engagement reporting automatically.
383
+
384
+ > **NOT push configuration.** This renders the in-app feed of received notifications. It does NOT set up push delivery (FCM/APNs token registration, dashboard providers, background wake). For that, see `cometchat-native-push`.
385
+
386
+ ```tsx
387
+ <CometChatNotificationFeed
388
+ showBackButton={true}
389
+ onBackPress={() => navigation.goBack()}
390
+ onItemClick={(item) => openDetail(item)}
391
+ onActionClick={(item, action) => {
392
+ const { type, params, elementId } = action; // e.g. type "openUrl" → params.url
393
+ }}
394
+ notificationFeedRequestBuilder={
395
+ new CometChat.NotificationFeedRequestBuilder().setLimit(30).build()
396
+ }
397
+ />
398
+ ```
399
+
400
+ Drop it into a screen/navigation destination — it manages its own data, state, and listeners; you only handle navigation callbacks. Renders with zero props (`<CometChatNotificationFeed />`) given an initialized SDK + logged-in user.
401
+
402
+ Key props: `title` (default `"Notifications"`), `showHeader` (default `true`), `showBackButton` (default `false`), `showFilterChips` (default `true`), `scrollToItemId` (deep-link to one item), `notificationFeedRequestBuilder` (`CometChat.NotificationFeedRequestBuilder`), `notificationCategoriesRequestBuilder` (`CometChat.NotificationCategoriesRequestBuilder`), `onItemClick` (`(feedItem) => void`), `onActionClick` (`(feedItem, action: { type, params, elementId }) => void`), `onError` (`(error: CometChat.CometChatException) => void`), `onBackPress` (`() => void`), `cardThemeMode` (`"auto" | "light" | "dark"`, default `"auto"`), `cardThemeOverride`, `style`. Slot views are `HeaderView` / `EmptyView` / `ErrorView` / `LoadingView` (each `() => JSX.Element`).
403
+
404
+ ---
405
+
406
+ ## 7. Atoms (primitives for custom composition)
373
407
 
374
408
  Building blocks the higher-level components use internally. Use inside `<Slot>View` overrides or custom screens.
375
409
 
@@ -396,7 +430,7 @@ All atoms take `style={}` in the same nested-object shape.
396
430
 
397
431
  ---
398
432
 
399
- ## 7. Bubbles
433
+ ## 8. Bubbles
400
434
 
401
435
  The message list renders bubbles automatically based on message type. Use them directly only when you need a custom bubble template.
402
436
 
@@ -421,7 +455,7 @@ Extension-provided bubbles (only present if the extension is registered):
421
455
 
422
456
  ---
423
457
 
424
- ## 8. Formatters (custom text rendering)
458
+ ## 9. Formatters (custom text rendering)
425
459
 
426
460
  Pass via `CometChatMessageList.textFormatters` or the composer's same prop.
427
461
 
@@ -447,7 +481,7 @@ See `cometchat-native-customization` for the `extends CometChatTextFormatter` re
447
481
 
448
482
  ---
449
483
 
450
- ## 9. Infrastructure (static classes + event bus)
484
+ ## 10. Infrastructure (static classes + event bus)
451
485
 
452
486
  ### CometChatUIKit
453
487
 
@@ -458,7 +492,7 @@ Static class — init + login + logout + send.
458
492
  | `CometChatUIKit.init(settings)` | Initialize. Must resolve before any component renders. |
459
493
  | `CometChatUIKit.login({ uid })` | Log in (dev mode). **Takes an object**, not `login("...")`. |
460
494
  | `CometChatUIKit.login({ authToken })` | Log in with a server-minted token (production). Same method as dev, different arg. |
461
- | `CometChatUIKit.getLoggedInUser()` | Returns current `CometChat.User` or `null` (Promise). |
495
+ | `CometChatUIKit.getLoggedInUser()` | Returns the current `CometChat.User` (Promise). **Throws `code: "NOT_FOUND"` when there is no session** — wrap in try/catch (see core §2). |
462
496
  | `CometChatUIKit.logout()` | Log out + clear session. |
463
497
  | `CometChatUIKit.sendCustomMessage(msg)` | Send custom message (used by calling, extensions). |
464
498
  | `CometChatUIKit.uiKitSettings` | Read back the settings passed to `init()`. |
@@ -498,8 +532,8 @@ See `cometchat-native-customization` for recipes.
498
532
  ### CometChatSoundManager
499
533
 
500
534
  ```tsx
501
- import { CometChatSoundManager, SoundOutput } from "@cometchat/chat-uikit-react-native";
502
- CometChatSoundManager.play(SoundOutput.incomingMessage);
535
+ import { CometChatSoundManager } from "@cometchat/chat-uikit-react-native";
536
+ CometChatSoundManager.play("incomingMessage"); // string key; SoundOutput is a static member of CometChatSoundManager, not a named export
503
537
  ```
504
538
 
505
539
  ### DataSource / DataSourceDecorator / MessageDataSource / ExtensionsDataSource / ChatConfigurator
@@ -508,7 +542,7 @@ Lower-level extension points for deep customization. `cometchat-native-customiza
508
542
 
509
543
  ---
510
544
 
511
- ## 10. Extensions (opt-in)
545
+ ## 11. Extensions (opt-in)
512
546
 
513
547
  Extensions add message types + features that are toggled on the app's backend (via `cometchat apply-feature <id>` for boolean extensions and AI features, or via the dashboard for third-party-key extensions like Giphy / Stipop). Each ships its own bubble + composer action. Register via the `extensions` field on `CometChatUIKit.init({ ... })`.
514
548
 
@@ -526,7 +560,7 @@ See `cometchat-native-features` for the per-extension recipe — most are pure b
526
560
 
527
561
  ---
528
562
 
529
- ## 11. Hard rule — `hideReplyInThreadOption` is mandatory on every MessageList
563
+ ## 12. Hard rule — `hideReplyInThreadOption` is mandatory on every MessageList
530
564
 
531
565
  **Every `<CometChatMessageList>` MUST include `hideReplyInThreadOption`** unless the integration also wires a full thread panel (`CometChatThreadHeader` + scoped `CometChatMessageList` with `parentMessageId` + scoped `CometChatMessageComposer` with `parentMessageId`).
532
566
 
@@ -536,13 +570,13 @@ Every example in this catalog includes the flag for a reason — keep it. The on
536
570
 
537
571
  ---
538
572
 
539
- ## 12. Common prop-finding recipe
573
+ ## 13. Common prop-finding recipe
540
574
 
541
575
  When a user's request isn't obviously covered, check in this order before writing custom code:
542
576
 
543
577
  1. **Named component in this catalog fits?** ("show call history" → `CometChatCallLogs`).
544
- 2. **A `hide*` / visibility prop?** ("hide receipts" → `hideReceipts={true}`, not custom bubbles).
545
- 3. **A `<Slot>View` prop?** ("customize the header title" → `TitleView={(u, g) => <MyTitle />}`, not a wholesale header replacement).
578
+ 2. **A `hide*` / visibility prop?** ("hide receipts" → `receiptsVisibility={false}`, not custom bubbles).
579
+ 3. **A `<Slot>View` prop?** ("customize the header title" → `TitleView={({ user, group }) => <MyTitle />}`, not a wholesale header replacement).
546
580
  4. **A `*RequestBuilder`?** ("filter conversations" → `conversationsRequestBuilder` with `.setUserTags([...])`, not post-render filtering).
547
581
  5. **`textFormatters` + `templates`** for message-rendering customization.
548
582
  6. **`CometChatUIEventHandler`** for cross-component communication.
@@ -552,7 +586,7 @@ Never hand-roll a bubble, a header, or a list when the kit ships one — you'll
552
586
 
553
587
  ---
554
588
 
555
- ## 13. Style shape reference
589
+ ## 14. Style shape reference
556
590
 
557
591
  Every style prop follows a nested-object shape. Pass `style={}` for no customization; override only the keys you care about.
558
592