@cometchat/skills 4.4.2 → 5.0.1

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 (518) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +44 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATING.md +187 -0
  6. package/README.md +52 -156
  7. package/RULES.md +125 -0
  8. package/bin/cometchat-skills.mjs +1280 -0
  9. package/bin/legacy-skills.json +95 -0
  10. package/catalogs/android-v6.json +1646 -0
  11. package/catalogs/flutter-v6.json +651 -0
  12. package/catalogs/ios-v5.json +1383 -0
  13. package/catalogs/rn-calls-v5.json +134 -0
  14. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  15. package/catalogs/rn-sdk-v4.json +672 -0
  16. package/catalogs/rn-v5.json +449 -0
  17. package/catalogs/rn-v5.symbols.txt +216 -0
  18. package/catalogs/sdk-android-v5.json +514 -0
  19. package/contracts.android-calls-v5.json +122 -0
  20. package/contracts.android-v6.json +135 -0
  21. package/contracts.angular-v5.json +694 -0
  22. package/contracts.flutter-calls-v5.json +77 -0
  23. package/contracts.flutter-v6.json +126 -0
  24. package/contracts.ios-calls-v5.json +67 -0
  25. package/contracts.ios-v5.json +436 -0
  26. package/contracts.json +82 -0
  27. package/contracts.rn-calls-v5.json +77 -0
  28. package/contracts.rn-v5.json +727 -0
  29. package/contracts.sdk-android-v5.json +15 -0
  30. package/contracts.web-calls-v5.json +45 -0
  31. package/features.android-calls-v5.json +246 -0
  32. package/features.android-v6.json +65 -0
  33. package/features.angular-v5.json +521 -0
  34. package/features.flutter-calls-v5.json +286 -0
  35. package/features.flutter-v6.json +484 -0
  36. package/features.ios-calls-v5.json +236 -0
  37. package/features.ios-v5.json +573 -0
  38. package/features.json +61 -0
  39. package/features.rn-calls-v5.json +187 -0
  40. package/features.rn-v5.json +614 -0
  41. package/features.sdk-android-v5.json +40 -0
  42. package/features.sdk-jsv4.json +24 -0
  43. package/features.web-calls-v5.json +108 -0
  44. package/package.json +156 -74
  45. package/peers.yaml +355 -0
  46. package/registry/README.md +31 -0
  47. package/registry/android-calls-v5.json +94 -0
  48. package/registry/android-v6.json +177 -0
  49. package/registry/angular-v5.json +154 -0
  50. package/registry/flutter-calls-v5.json +94 -0
  51. package/registry/flutter-v6.json +159 -0
  52. package/registry/ios-calls-v5.json +99 -0
  53. package/registry/ios-v5.json +152 -0
  54. package/registry/rn-calls-v5.json +99 -0
  55. package/registry/rn-v5.json +169 -0
  56. package/registry/sdk-android-v5.json +93 -0
  57. package/registry/sdk-jsv4.json +93 -0
  58. package/registry/web-calls-v5.json +94 -0
  59. package/registry/web-v7.json +154 -0
  60. package/skills/cometchat/SKILL.md +47 -2096
  61. package/skills/cometchat-a11y/SKILL.md +44 -472
  62. package/skills/cometchat-analytics/SKILL.md +61 -0
  63. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  67. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  68. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  69. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  70. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  71. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  72. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  73. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  74. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  75. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  76. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  77. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  78. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  79. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  80. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  81. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  82. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  83. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  84. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  85. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  86. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  87. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  88. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  89. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  90. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  91. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  92. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  93. package/skills/cometchat-android-v6-production/SKILL.md +41 -179
  94. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  95. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  96. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  97. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  98. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  99. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  100. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  101. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  102. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  103. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  104. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  105. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  106. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  107. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  108. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  109. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  110. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  111. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  112. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  113. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  114. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  115. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  116. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  117. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  118. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  119. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  120. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  121. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  122. package/skills/cometchat-angular-v5-production/SKILL.md +102 -0
  123. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  124. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  125. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  126. package/skills/cometchat-audit/SKILL.md +61 -0
  127. package/skills/cometchat-compliance/SKILL.md +63 -0
  128. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  129. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  130. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  131. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  132. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  133. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  134. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  135. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  136. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  137. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  138. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  139. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  140. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  141. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  145. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  146. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +132 -0
  147. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  148. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  149. package/skills/cometchat-flutter-v6-production/SKILL.md +59 -615
  150. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  151. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  153. package/skills/cometchat-i18n/SKILL.md +35 -404
  154. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  155. package/skills/cometchat-ios-components/SKILL.md +44 -834
  156. package/skills/cometchat-ios-core/SKILL.md +182 -1068
  157. package/skills/cometchat-ios-core/references/anti-patterns.md +113 -0
  158. package/skills/cometchat-ios-core/references/docs-map.md +124 -0
  159. package/skills/cometchat-ios-core/references/install.md +23 -0
  160. package/skills/cometchat-ios-core/references/layout.md +219 -0
  161. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  162. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  163. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  164. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  165. package/skills/cometchat-ios-features/SKILL.md +29 -738
  166. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  167. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  168. package/skills/cometchat-ios-production/SKILL.md +67 -723
  169. package/skills/cometchat-ios-push/SKILL.md +24 -602
  170. package/skills/cometchat-ios-testing/SKILL.md +36 -355
  171. package/skills/cometchat-ios-troubleshooting/SKILL.md +31 -989
  172. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  173. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  174. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  175. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  176. package/skills/cometchat-migrate-from-getstream/SKILL.md +65 -0
  177. package/skills/cometchat-migrate-from-getstream/references/concept-map.md +98 -0
  178. package/skills/cometchat-migrate-from-getstream/references/data-migration.md +74 -0
  179. package/skills/cometchat-migrate-from-getstream/references/feature-map.md +108 -0
  180. package/skills/cometchat-migrate-from-getstream/references/inventory.md +82 -0
  181. package/skills/cometchat-migrate-from-getstream/references/native-build.md +9 -0
  182. package/skills/cometchat-migrate-from-getstream/references/report-template.md +59 -0
  183. package/skills/cometchat-migrate-from-sendbird/SKILL.md +64 -0
  184. package/skills/cometchat-migrate-from-sendbird/references/concept-map.md +99 -0
  185. package/skills/cometchat-migrate-from-sendbird/references/data-migration.md +74 -0
  186. package/skills/cometchat-migrate-from-sendbird/references/feature-map.md +104 -0
  187. package/skills/cometchat-migrate-from-sendbird/references/inventory.md +86 -0
  188. package/skills/cometchat-migrate-from-sendbird/references/native-build.md +10 -0
  189. package/skills/cometchat-migrate-from-sendbird/references/report-template.md +59 -0
  190. package/skills/cometchat-migrate-from-twilio/SKILL.md +52 -0
  191. package/skills/cometchat-migrate-from-twilio/references/concept-map.md +49 -0
  192. package/skills/cometchat-migrate-from-twilio/references/data-migration.md +50 -0
  193. package/skills/cometchat-migrate-from-twilio/references/feature-map.md +27 -0
  194. package/skills/cometchat-migrate-from-twilio/references/inventory.md +53 -0
  195. package/skills/cometchat-migrate-from-twilio/references/report-template.md +52 -0
  196. package/skills/cometchat-moderation/SKILL.md +58 -0
  197. package/skills/cometchat-onboarding/SKILL.md +92 -0
  198. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  199. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  200. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  201. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  202. package/skills/cometchat-onboarding/references/platforms.md +105 -0
  203. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  204. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  205. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  206. package/skills/cometchat-react-native-core/SKILL.md +335 -0
  207. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  208. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  209. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  210. package/skills/cometchat-react-native-core/references/docs-map.md +127 -0
  211. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  212. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  213. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  214. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  215. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  216. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  217. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  218. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  219. package/skills/cometchat-react-native-production/SKILL.md +79 -0
  220. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  221. package/skills/cometchat-react-native-sdk/SKILL.md +133 -0
  222. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  223. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  224. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  225. package/skills/cometchat-react-native-troubleshooting/SKILL.md +174 -0
  226. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  227. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  228. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  229. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  230. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  231. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  232. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  233. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  234. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  235. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  236. package/skills/cometchat-react-v7-core/references/layout.md +150 -0
  237. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  238. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  239. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  240. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  241. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  242. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  243. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  244. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  245. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  246. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  247. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  248. package/skills/cometchat-react-v7-production/SKILL.md +84 -0
  249. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  250. package/skills/cometchat-react-v7-testing/SKILL.md +60 -0
  251. package/skills/cometchat-react-v7-troubleshooting/SKILL.md +47 -0
  252. package/skills/cometchat-security/SKILL.md +80 -0
  253. package/skills/cometchat-self-host/SKILL.md +56 -0
  254. package/test-suite/README.md +70 -0
  255. package/test-suite/catalogs/android-calls-v5.json +830 -0
  256. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  257. package/test-suite/catalogs/android-v6.json +1646 -0
  258. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  259. package/test-suite/catalogs/angular-v5.json +7587 -0
  260. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  261. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  262. package/test-suite/catalogs/flutter-v6.json +651 -0
  263. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  264. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  265. package/test-suite/catalogs/ios-v5.json +1383 -0
  266. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  267. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  268. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  269. package/test-suite/catalogs/rn-v5.json +449 -0
  270. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  271. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  272. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  273. package/test-suite/catalogs/web-calls-v5.json +195 -0
  274. package/test-suite/catalogs/web-v7.json +1243 -0
  275. package/test-suite/scripts/build-registry.mjs +113 -0
  276. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  277. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  278. package/test-suite/scripts/lint-skills.mjs +932 -0
  279. package/test-suite/scripts/measure-tokens.mjs +169 -0
  280. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  281. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  282. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  283. package/test-suite/scripts/verify-catalog.mjs +242 -0
  284. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  285. package/test-suite/scripts/verify-detection.mjs +178 -0
  286. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  287. package/test-suite/scripts/verify-family-agnostic.mjs +134 -0
  288. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  289. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  290. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  291. package/test-suite/typecheck/angular-v5/package.json +21 -0
  292. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  293. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  294. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  295. package/test-suite/typecheck/web-v7/package.json +18 -0
  296. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  297. package/bin/install.js +0 -1003
  298. package/skills/.claude-plugin/marketplace.json +0 -86
  299. package/skills/cometchat/references/asking-questions.md +0 -48
  300. package/skills/cometchat-android-v5/SKILL.md +0 -121
  301. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  302. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  303. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  304. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  305. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  306. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  307. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  308. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  309. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  310. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  311. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  312. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  313. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  314. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  315. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  316. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  317. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  318. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  319. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  320. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  321. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  322. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  323. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  324. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  325. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  326. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  327. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  328. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  329. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  330. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  331. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  332. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  333. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  334. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  335. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  336. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  337. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  338. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  339. package/skills/cometchat-android-v6/SKILL.md +0 -108
  340. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  341. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  342. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  343. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  344. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  345. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  346. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  347. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  348. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  349. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  350. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  351. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  352. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  353. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  354. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  355. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  356. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  357. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  358. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  359. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  360. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  361. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  362. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  363. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  364. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  365. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  366. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  367. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  368. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  369. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  370. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  371. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  372. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  373. package/skills/cometchat-angular-components/SKILL.md +0 -235
  374. package/skills/cometchat-angular-core/SKILL.md +0 -386
  375. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  376. package/skills/cometchat-angular-features/SKILL.md +0 -329
  377. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  378. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  379. package/skills/cometchat-angular-production/SKILL.md +0 -564
  380. package/skills/cometchat-angular-push/SKILL.md +0 -389
  381. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  382. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  383. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  384. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  385. package/skills/cometchat-calls/SKILL.md +0 -364
  386. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  387. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  388. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  389. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  390. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  391. package/skills/cometchat-components/SKILL.md +0 -1142
  392. package/skills/cometchat-core/SKILL.md +0 -1048
  393. package/skills/cometchat-customization/SKILL.md +0 -580
  394. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  395. package/skills/cometchat-features/SKILL.md +0 -861
  396. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  397. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  398. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  399. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  400. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  401. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  402. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  403. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  404. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  405. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  406. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  407. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  408. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  409. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  410. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  411. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  412. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  413. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  414. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  415. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  416. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  417. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  418. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  419. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  420. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  421. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  422. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  423. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  424. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  425. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  426. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  427. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  428. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  429. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  430. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  431. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  432. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  433. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  434. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  435. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  436. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  437. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  438. package/skills/cometchat-ios/SKILL.md +0 -325
  439. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  440. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  441. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  442. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  443. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  444. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  445. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  446. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  447. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  448. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  449. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  450. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  451. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  452. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  453. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  454. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  455. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  456. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  457. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  458. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  459. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  460. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  461. package/skills/cometchat-native-calls/SKILL.md +0 -671
  462. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  463. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  464. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  465. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  466. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  467. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  468. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  469. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  470. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  471. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  472. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  473. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  474. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  475. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  476. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  477. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  478. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  479. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  480. package/skills/cometchat-native-components/SKILL.md +0 -628
  481. package/skills/cometchat-native-core/SKILL.md +0 -679
  482. package/skills/cometchat-native-customization/SKILL.md +0 -716
  483. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  484. package/skills/cometchat-native-features/SKILL.md +0 -638
  485. package/skills/cometchat-native-placement/SKILL.md +0 -509
  486. package/skills/cometchat-native-production/SKILL.md +0 -700
  487. package/skills/cometchat-native-push/SKILL.md +0 -594
  488. package/skills/cometchat-native-testing/SKILL.md +0 -582
  489. package/skills/cometchat-native-theming/SKILL.md +0 -681
  490. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  491. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  492. package/skills/cometchat-placement/SKILL.md +0 -1360
  493. package/skills/cometchat-production/SKILL.md +0 -1027
  494. package/skills/cometchat-react-calls/SKILL.md +0 -752
  495. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  496. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  497. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  498. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  499. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  500. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  501. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  502. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  503. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  504. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  505. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  506. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  507. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  508. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  509. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  510. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  511. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  512. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  513. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  514. package/skills/cometchat-react-push/SKILL.md +0 -634
  515. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  516. package/skills/cometchat-react-testing/SKILL.md +0 -413
  517. package/skills/cometchat-theming/SKILL.md +0 -498
  518. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,384 +0,0 @@
1
- ---
2
- name: cometchat-flutter-v6-messages
3
- description: >
4
- Use when implementing the messages screen with CometChat Flutter UIKit v6. Covers
5
- CometChatMessageList, CometChatMessageComposer, CometChatMessageHeader, MessageListBloc,
6
- MessageComposerBloc, SliverSpacing, keyboard-aware spacing, rich text toolbar,
7
- CometChatTextBubble, CometChatImageBubble, CometChatVideoBubble, CometChatAudioBubble,
8
- CometChatFileBubble, CometChatMessageBubble, bubble factories, message templates,
9
- send message, edit message, delete message, reply, thread, reactions, receipts,
10
- typing indicators, mentions, markdown formatting, text formatters, scroll to bottom,
11
- unread messages, mark as read, goToMessageId, message options, swipe to reply,
12
- smart replies, conversation starters, or resizeToAvoidBottomInset. Also use when
13
- the user asks about building a chat screen, message input, or message display.
14
- license: "MIT"
15
- compatibility: "cometchat_chat_uikit ^6.0.1; flutter_bloc ^8.1.0"
16
- metadata:
17
- author: "CometChat"
18
- version: "3.0.0"
19
- tags: "cometchat flutter messages composer header bubbles keyboard rich-text"
20
- ---
21
-
22
- > **Ground truth:** `cometchat_chat_uikit: ^6.0` — pub-cache source + `ui-kit/flutter`. **Official docs:** https://www.cometchat.com/docs/ui-kit/flutter/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
23
-
24
- # CometChat Flutter UIKit — Messages
25
-
26
- The messages screen is composed of three components: `CometChatMessageHeader`, `CometChatMessageList`, and `CometChatMessageComposer`.
27
-
28
- ## Complete Messages Screen
29
-
30
- ```dart
31
- final colorPalette = CometChatThemeHelper.getColorPalette(context);
32
- Scaffold(
33
- resizeToAvoidBottomInset: true, // matches sample app; composer clamps to viewInsets (ENG-34434)
34
- appBar: CometChatMessageHeader(
35
- user: user,
36
- group: group,
37
- onBack: () => Navigator.pop(context),
38
- ),
39
- body: SafeArea(
40
- top: false, // Header is the appBar — top inset already handled; keep bottom inset
41
- child: Container(
42
- color: colorPalette.background3,
43
- child: Column(
44
- children: [
45
- Expanded(
46
- child: CometChatMessageList(
47
- user: user,
48
- group: group,
49
- textFormatters: [
50
- CometChatMentionsFormatter(user: user, group: group),
51
- MarkdownTextFormatter(),
52
- CometChatUrlFormatter(),
53
- CometChatPhoneNumberFormatter(),
54
- CometChatEmailFormatter(),
55
- ],
56
- ),
57
- ),
58
- CometChatMessageComposer(
59
- user: user,
60
- group: group,
61
- textFormatters: [
62
- CometChatMentionsFormatter(user: user, group: group),
63
- MarkdownTextFormatter(),
64
- CometChatUrlFormatter(),
65
- CometChatPhoneNumberFormatter(),
66
- CometChatEmailFormatter(),
67
- ],
68
- ),
69
- ],
70
- ),
71
- ),
72
- ),
73
- )
74
- ```
75
-
76
- ## CometChatMessageList
77
-
78
- Displays messages with `SliverAnimatedList`, O(1) lookups, and keyboard-aware spacing.
79
-
80
- ### Key Props
81
-
82
- | Prop | Type | Purpose |
83
- |------|------|---------|
84
- | `user` / `group` | `User?` / `Group?` | Target conversation (one required) |
85
- | `goToMessageId` | `int?` | Jump to specific message on load |
86
- | `startFromUnreadMessages` | `bool` | Start from unread position |
87
- | `hideDeletedMessages` | `bool` | Hide deleted message placeholders |
88
- | `disableReceipts` | `bool` | Hide read/delivered receipts |
89
- | `disableReactions` | `bool` | Hide reaction bar |
90
- | `enableSwipeToReply` | `bool` | Swipe gesture for reply |
91
- | `hideDateSeparator` | `bool` | Hide date headers |
92
- | `textFormatters` | `List<CometChatTextFormatter>` | Formatters for message text |
93
- | `onThreadRepliesClick` | `Function(BaseMessage, BuildContext, {template})` | Thread navigation callback |
94
- | `messagesRequestBuilder` | `MessagesRequestBuilder?` | Customize the underlying message query (see below) |
95
-
96
- ### MessagesRequestBuilder — customizing the message query
97
-
98
- `CometChatMessageList` accepts a `messagesRequestBuilder` prop that lets you customize the underlying SDK request — page size, filters, search, etc. The class lives in the Chat SDK (`package:cometchat_sdk/cometchat_sdk.dart`) and exposes 30+ fluent setters. Common setters:
99
-
100
- | Setter | Purpose |
101
- |--------|---------|
102
- | `setLimit(int)` | Page size (default 30, max 100) |
103
- | `setTypes(List<String>)` | Restrict to message types (e.g. `['text', 'image']`) |
104
- | `setCategories(List<String>)` | Restrict to categories (e.g. `['message', 'custom']`) |
105
- | `setHideMessagesFromBlockedUsers(bool)` | Drop messages from blocked users |
106
- | `setSearchKeyword(String)` | Server-side keyword search |
107
- | `setTags(List<String>)` | Filter by message tags |
108
- | `setHasAttachments(bool)` | Only messages with file attachments |
109
- | `setHasLinks(bool)` | Only messages containing links |
110
- | `setHideReplies(bool)` | Exclude threaded replies from the main list |
111
- | `setHideDeleted(bool)` | Exclude deleted messages |
112
- | `setHideQuotedMessages(bool)` | Exclude quoted-reply messages |
113
- | `setUpdatedAfter(DateTime)` | Only messages updated after this DateTime |
114
- | `setUpdatesOnly(bool)` | Return only updates, not new messages |
115
- | `setParentMessageId(int)` | Fetch a thread's replies |
116
- | `setMentionedUIDs(List<String>)` | Messages mentioning specific users |
117
- | `setHasMentions(bool)` | Only messages with any mention |
118
-
119
- Example — limit to 30, hide messages from blocked users, restrict to text + image:
120
-
121
- ```dart
122
- CometChatMessageList(
123
- user: user,
124
- messagesRequestBuilder: MessagesRequestBuilder()
125
- ..setLimit(30)
126
- ..setHideMessagesFromBlockedUsers(true)
127
- ..setTypes(['text', 'image']),
128
- )
129
- ```
130
-
131
- ### MessageListBloc Events
132
-
133
- | Event | Purpose |
134
- |-------|---------|
135
- | `LoadMessages(conversationWith, conversationType)` | Initial load |
136
- | `LoadOlderMessages` | Scroll up pagination |
137
- | `LoadNewerMessages` | Scroll down pagination |
138
- | `MessageReceived(message)` | Real-time incoming message |
139
- | `MessageEdited(message)` | Real-time edit |
140
- | `MessageDeleted(message)` | Real-time delete |
141
- | `JumpToMessage(messageId)` | Scroll to specific message |
142
- | `MarkMessageAsRead(message)` | Mark as read |
143
- | `MarkMessageAsUnread(message)` | Mark as unread |
144
-
145
- ### MessageListState
146
-
147
- ```dart
148
- MessageListState(
149
- status: MessageListStatus.loaded, // initial, loading, loaded, empty, error
150
- messages: [...],
151
- isLoadingOlder: false,
152
- isLoadingNewer: false,
153
- hasMoreOlder: true,
154
- hasMoreNewer: false,
155
- unreadCount: 5,
156
- unreadMessageAnchor: message,
157
- )
158
- ```
159
-
160
- ## CometChatMessageComposer
161
-
162
- Rich text input with formatting toolbar, attachments, mentions, and audio recording.
163
-
164
- ### Key Props
165
-
166
- | Prop | Type | Purpose |
167
- |------|------|---------|
168
- | `user` / `group` | `User?` / `Group?` | Target conversation |
169
- | `disableTypingEvents` | `bool` | Stop sending typing indicators |
170
- | `hideVoiceRecordingButton` | `bool` | Hide audio recorder |
171
- | `hideSendButton` | `bool` | Hide send button |
172
- | `hideAttachmentButton` | `bool` | Hide attachment picker |
173
- | `hideStickersButton` | `bool` | Hide sticker panel |
174
- | `disableMentions` | `bool` | Disable @mentions |
175
- | `hideBottomSafeArea` | `bool` | Hide bottom safe area padding |
176
- | `textFormatters` | `List<CometChatTextFormatter>` | Text formatters |
177
-
178
- ### Rich Text Formatting
179
-
180
- The composer uses a WYSIWYG system (not the clean architecture module):
181
- - `RichTextEditingController` — span tracking, markdown rendering, format application
182
- - `SegmentComposerController` — multi-segment (normal text + code blocks)
183
- - Toolbar buttons dispatch through `cometchat_message_composer.dart`
184
-
185
- ### buildWhen Optimization
186
-
187
- The composer uses `buildWhen` to prevent rebuilds during keyboard animation:
188
- ```dart
189
- BlocConsumer<MessageComposerBloc, MessageComposerState>(
190
- buildWhen: (previous, current) =>
191
- previous.isEditMode != current.isEditMode ||
192
- previous.isReplyMode != current.isReplyMode ||
193
- previous.isRecordingMode != current.isRecordingMode,
194
- // ...
195
- )
196
- ```
197
-
198
- The actual filter in `cometchat_message_composer.dart` also covers `editMessage` / `replyMessage` target changes and panel transitions (`headerPanel`, `footerPanel`, `previewPanel`, `lockedBottomPadding`, `isActiveStreaming`). The snippet above shows the three primary mode flags for brevity — if you subclass or wrap the composer, copy the full predicate from `cometchat_message_composer.dart` so edit/reply targets and panels also trigger rebuilds.
199
-
200
- ## CometChatMessageHeader
201
-
202
- Shows user/group info, typing indicators, and optional call buttons.
203
-
204
- ```dart
205
- CometChatMessageHeader(
206
- user: user,
207
- group: group,
208
- onBack: () => Navigator.pop(context),
209
- hideVideoCallButton: false,
210
- hideVoiceCallButton: false,
211
- usersStatusVisibility: true,
212
- trailingView: (user, group, ctx) => [
213
- IconButton(icon: Icon(Icons.info_outline), onPressed: () { /* ... */ }),
214
- ],
215
- messageHeaderStyle: CometChatMessageHeaderStyle(
216
- backgroundColor: colorPalette.background1,
217
- ),
218
- )
219
- ```
220
-
221
- ## Keyboard-Aware Spacing
222
-
223
- The composer coordinates with the keyboard internally — it tracks the native keyboard height and **clamps it to Flutter's `viewInsets`** (kit fix ENG-34434) so it does NOT add its own inset on top of the Scaffold's. The list's spacing then reacts to the same `viewInsets`:
224
- - At bottom: keyboard pushes list up (normal behavior)
225
- - Scrolled up: list stays still, only composer moves
226
- - Safe area: only added when keyboard is closed
227
-
228
- Because of that clamp, **set `resizeToAvoidBottomInset: true`** (or omit it — `true` is the Scaffold default), which is exactly what the kit's official sample app does (`messages_screen.dart` omits it → defaults `true`; `thread_screen.dart` sets it `true` explicitly).
229
-
230
- > Version note: on kits **before ENG-34434 (pre-6.0.1)** the composer did NOT clamp, so `true` double-compensated and `false` was the workaround. On `^6.0.1` (what this skill targets) `true` is correct. If you ever see a double keyboard gap, you're on an older kit — upgrade, or set `false` as a stopgap.
231
-
232
- ## Message Bubbles
233
-
234
- | Type | Widget | Key Features |
235
- |------|--------|--------------|
236
- | Text | `CometChatTextBubble` | Rich text, links, markdown |
237
- | Image | `CometChatImageBubble` | Local/network, GIF, HEIC fallback |
238
- | Video | `CometChatVideoBubble` | Thumbnail, play overlay |
239
- | Audio | `CometChatAudioBubble` | Waveform, play/pause, duration |
240
- | File | `CometChatFileBubble` | Type icon, download, size |
241
- | Deleted | `CometChatDeletedBubble` | "Message was deleted" |
242
-
243
- All bubble widgets accept optional `colorPalette`, `spacing`, `typography` params for the hybrid theme caching pattern.
244
-
245
- ## Sending Messages
246
-
247
- ```dart
248
- // Text message
249
- await CometChatUIKit.sendTextMessage(
250
- TextMessage(
251
- text: 'Hello!',
252
- receiverUid: user.uid,
253
- receiverType: ReceiverTypeConstants.user,
254
- ),
255
- );
256
-
257
- // Media message
258
- await CometChatUIKit.sendMediaMessage(
259
- MediaMessage(
260
- file: '/path/to/image.jpg',
261
- type: MessageTypeConstants.image,
262
- receiverUid: user.uid,
263
- receiverType: ReceiverTypeConstants.user,
264
- ),
265
- );
266
-
267
- // Custom message
268
- await CometChatUIKit.sendCustomMessage(
269
- CustomMessage(
270
- type: 'location',
271
- receiverUid: user.uid,
272
- receiverType: ReceiverTypeConstants.user,
273
- customData: {'latitude': 37.7749, 'longitude': -122.4194},
274
- ),
275
- );
276
- ```
277
-
278
- ## Thread Replies
279
-
280
- ```dart
281
- CometChatMessageList(
282
- onThreadRepliesClick: (message, ctx, {template}) {
283
- final colorPalette = CometChatThemeHelper.getColorPalette(context);
284
- Navigator.push(context, MaterialPageRoute(
285
- builder: (_) => Scaffold(
286
- resizeToAvoidBottomInset: true,
287
- body: SafeArea(
288
- child: Container(
289
- color: colorPalette.background3,
290
- child: Column(
291
- children: [
292
- CometChatThreadedHeader(
293
- parentMessage: message,
294
- loggedInUser: CometChatUIKit.loggedInUser!,
295
- ),
296
- Expanded(child: CometChatMessageList(
297
- user: user, group: group,
298
- parentMessageId: message.id,
299
- // Scope the list to this thread only: exclude the parent and
300
- // request just the replies for message.id.
301
- withParent: false,
302
- messagesRequestBuilder: MessagesRequestBuilder()
303
- ..parentMessageId = message.id,
304
- )),
305
- CometChatMessageComposer(
306
- user: user, group: group,
307
- parentMessageId: message.id,
308
- ),
309
- ],
310
- ),
311
- ),
312
- ),
313
- ),
314
- ));
315
- },
316
- )
317
- ```
318
-
319
- ## Gotchas
320
-
321
- - Use `resizeToAvoidBottomInset: true` (or omit — it's the default), matching the kit sample app. On `^6.0.1` the composer clamps the keyboard height to Flutter's `viewInsets` (ENG-34434), so `true` does NOT double-compensate. Only on pre-6.0.1 kits did `true` cause a double keyboard gap (where `false` was the workaround) — if you see that gap, upgrade the kit.
322
- - `textFormatters` should be the same list for both `CometChatMessageList` and `CometChatMessageComposer` to ensure consistent rendering.
323
- - The rich text system has 3 implementations but only WYSIWYG is active at runtime. Bug fixes go in `rich_text_editing_controller.dart`, not the clean architecture module.
324
- - `goToMessageId` loads messages around that ID, not from the beginning. The list may not have older messages loaded.
325
- - Keep mutable `_user`/`_group` copies in your State class and update them from SDK listeners. Passing `widget.user`/`widget.group` directly means stale data after block/kick events.
326
- - The CometChat SDK has an `Action` class (a `BaseMessage` subclass used in group events like kick/ban/scope-change). It conflicts with Flutter's built-in `Action` widget. If your messages screen uses SDK listener mixins that reference `Action`, use an import alias:
327
- ```dart
328
- import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart' as cc;
329
- // Then use: cc.Action instead of Action
330
- ```
331
- This is especially common when mixing `GroupListener` into a messages screen State class.
332
-
333
- ## Anti-Patterns
334
-
335
- ```dart
336
- // ❌ WRONG — list not wrapped in Expanded (unbounded height → won't scroll / overflow)
337
- Scaffold(
338
- body: Column(children: [
339
- CometChatMessageList(user: user), // needs Expanded
340
- CometChatMessageComposer(user: user),
341
- ]),
342
- )
343
-
344
- // ✅ CORRECT — both messages and thread screens (matches the kit sample app)
345
- Scaffold(
346
- resizeToAvoidBottomInset: true, // (or omit — true is the default; composer clamps to viewInsets, ENG-34434)
347
- body: Column(children: [
348
- Expanded(child: CometChatMessageList(user: user)),
349
- CometChatMessageComposer(user: user),
350
- ]),
351
- )
352
- ```
353
-
354
- ```dart
355
- // ❌ WRONG — passing immutable widget params to UIKit components
356
- CometChatMessageList(user: widget.user) // Stale after block/unblock
357
-
358
- // ✅ CORRECT — mutable state copy
359
- late User? _user = widget.user;
360
- // Update _user from SDK listeners
361
- CometChatMessageList(user: _user)
362
- ```
363
-
364
- ```dart
365
- // ❌ WRONG — different formatters for list and composer
366
- CometChatMessageList(textFormatters: [MarkdownTextFormatter()])
367
- CometChatMessageComposer(textFormatters: []) // Inconsistent rendering
368
-
369
- // ✅ CORRECT — same formatters
370
- final formatters = [CometChatMentionsFormatter(user: user), MarkdownTextFormatter()];
371
- CometChatMessageList(textFormatters: formatters)
372
- CometChatMessageComposer(textFormatters: formatters)
373
- ```
374
-
375
- ## Checklist
376
-
377
- - [ ] Scaffold has `resizeToAvoidBottomInset: true` (or omitted — default; matches the sample app)
378
- - [ ] Both list and composer have matching `textFormatters`
379
- - [ ] Mutable `_user`/`_group` state copies, not `widget.user`/`widget.group`
380
- - [ ] `onThreadRepliesClick` navigates to thread screen with `parentMessageId`
381
- - [ ] Thread screen Scaffold also uses `resizeToAvoidBottomInset: true` (same as messages screen)
382
- - [ ] SDK listeners update `_user`/`_group` for block/kick/scope changes
383
- - [ ] Colors from `CometChatThemeHelper`, cached in `didChangeDependencies()`
384
- - [ ] If using SDK listener mixins with `Action`, import UIKit `as cc` to avoid Flutter name conflict
@@ -1,293 +0,0 @@
1
- ---
2
- name: cometchat-flutter-v6-theming
3
- description: >
4
- Use when customizing the visual appearance of CometChat Flutter UIKit v6 components.
5
- Triggers on mentions of CometChatThemeHelper, CometChatColorPalette, CometChatSpacing,
6
- CometChatTypography, CometChatThemeMode, dark mode, light mode, theme, colors, styling,
7
- custom theme, Style class, merge(), getColorPalette, getSpacing, getTypography,
8
- ThemeExtension, primary color, neutral colors, background colors, text colors, icon colors,
9
- button colors, border colors, or any CometChat{Component}Style class. Also use when the
10
- user asks about changing colors, fonts, spacing, or appearance of chat components.
11
- license: "MIT"
12
- compatibility: "cometchat_chat_uikit ^6.0.1; flutter >=2.5.0"
13
- metadata:
14
- author: "CometChat"
15
- version: "3.0.0"
16
- tags: "cometchat flutter theme colors typography spacing dark-mode styling"
17
- ---
18
-
19
- > **Ground truth:** `cometchat_chat_uikit: ^6.0` — pub-cache source + `ui-kit/flutter`. **Official docs:** https://www.cometchat.com/docs/ui-kit/flutter/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
20
-
21
- # CometChat Flutter UIKit — Theming & Styling
22
-
23
- How to customize the visual appearance of all CometChat components.
24
-
25
- ## Theme System Architecture
26
-
27
- Three layers, resolved via Flutter's `ThemeExtension` system:
28
-
29
- 1. `CometChatColorPalette` — all colors (primary, neutral, alert, background, text, icon, button, border)
30
- 2. `CometChatSpacing` — spacing tokens
31
- 3. `CometChatTypography` — text styles (heading1-4, body, caption1-2, button, link, title)
32
-
33
- Access via static helpers:
34
- ```dart
35
- final colors = CometChatThemeHelper.getColorPalette(context);
36
- final spacing = CometChatThemeHelper.getSpacing(context);
37
- final typography = CometChatThemeHelper.getTypography(context);
38
- ```
39
-
40
- ## Applying a Custom Theme
41
-
42
- Register `CometChatColorPalette` as a `ThemeExtension` on your `ThemeData`:
43
-
44
- ```dart
45
- MaterialApp(
46
- theme: ThemeData(
47
- brightness: Brightness.light,
48
- extensions: [
49
- CometChatColorPalette(
50
- primary: const Color(0xFF6852D6),
51
- background1: Colors.white,
52
- textPrimary: const Color(0xFF141414),
53
- // ... override only what you need, rest falls back to defaults
54
- ),
55
- ],
56
- ),
57
- darkTheme: ThemeData(
58
- brightness: Brightness.dark,
59
- extensions: [
60
- CometChatColorPalette(
61
- primary: const Color(0xFF604CC3),
62
- background1: const Color(0xFF141414),
63
- textPrimary: Colors.white,
64
- ),
65
- ],
66
- ),
67
- )
68
- ```
69
-
70
- Note: `CometChatColorPalette` does NOT have a `const` constructor (it has mutable default fields for `white`, `black`, `transparent`). Don't try `const CometChatColorPalette(...)` — it won't compile.
71
-
72
- ## Dark Mode
73
-
74
- `CometChatThemeMode` controls how brightness is resolved:
75
-
76
- ```dart
77
- // Follow system setting (default)
78
- CometChatThemeMode.mode = ThemeMode.system;
79
-
80
- // Force light
81
- CometChatThemeMode.mode = ThemeMode.light;
82
-
83
- // Force dark
84
- CometChatThemeMode.mode = ThemeMode.dark;
85
- ```
86
-
87
- The helper reads brightness via:
88
- ```dart
89
- // ThemeMode.system → MediaQuery.of(context).platformBrightness
90
- // ThemeMode.light → Brightness.light
91
- // ThemeMode.dark → Brightness.dark
92
- ```
93
-
94
- ## Color Palette Tokens
95
-
96
- | Category | Tokens | Default Source |
97
- |----------|--------|---------------|
98
- | Primary | `primary` | `#6852D6` light / `#604CC3` dark |
99
- | Extended Primary | `extendedPrimary50`–`900` | Auto-generated from primary via blend |
100
- | Neutral | `neutral50`–`900` | 10-shade grayscale |
101
- | Alert | `info`, `warning`, `error`, `success`, `error100` | Semantic colors |
102
- | Background | `background1`–`4` | Mapped from neutral shades |
103
- | Text | `textPrimary`, `textSecondary`, `textTertiary`, `textDisabled`, `textWhite`, `textHighlight` | Mapped from neutral/primary |
104
- | Icon | `iconPrimary`, `iconSecondary`, `iconTertiary`, `iconWhite`, `iconHighlight` | Mapped from neutral/primary |
105
- | Button | `buttonBackground`, `secondaryButtonBackground`, `buttonText`, `buttonIconColor`, `secondaryButtonText`, `secondaryButtonIcon` | Primary + neutral |
106
- | Border | `borderLight`, `borderDefault`, `borderDark`, `borderHighlight` | Neutral shades + primary |
107
- | Special | `white`, `black`, `messageSeen` | Fixed values |
108
-
109
- ## Component Style Classes
110
-
111
- Every component has a `CometChat{Component}Style` class with a `merge()` method:
112
-
113
- ```dart
114
- CometChatConversations(
115
- conversationsStyle: CometChatConversationsStyle(
116
- backgroundColor: colors.background1,
117
- titleTextStyle: typography.heading3?.bold,
118
- ),
119
- )
120
-
121
- CometChatMessageList(
122
- style: CometChatMessageListStyle(
123
- backgroundColor: colors.background3,
124
- ),
125
- )
126
- ```
127
-
128
- Style classes support `merge()` for combining defaults with overrides:
129
- ```dart
130
- final baseStyle = CometChatConversationsStyle(backgroundColor: Colors.white);
131
- final override = CometChatConversationsStyle(titleTextStyle: myTitleStyle);
132
- final merged = baseStyle.merge(override); // backgroundColor + titleTextStyle
133
- ```
134
-
135
- ## Theme Caching (Performance-Critical)
136
-
137
- Cache theme in `didChangeDependencies()` — never in `build()`:
138
-
139
- > **Trade-off (vs the Flutter V5 theming skill, which forbids this flag):** the
140
- > `_themeInitialized` guard caches the palette once and skips re-reads on every
141
- > `didChangeDependencies()` (e.g. keyboard animations) — but it also means a
142
- > runtime **system light↔dark switch won't re-resolve** the cached palette. If
143
- > your app supports live theme switching, either drop the flag (re-read every
144
- > call, as V5 recommends) or also invalidate it from `didChangePlatformBrightness`.
145
- > The flag is the right default for apps with a fixed theme mode.
146
-
147
- ```dart
148
- class _MyWidgetState extends State<MyWidget> {
149
- late CometChatColorPalette _colorPalette;
150
- bool _themeInitialized = false;
151
-
152
- @override
153
- void didChangeDependencies() {
154
- super.didChangeDependencies();
155
- if (!_themeInitialized) {
156
- _colorPalette = CometChatThemeHelper.getColorPalette(context);
157
- _themeInitialized = true;
158
- }
159
- }
160
-
161
- @override
162
- Widget build(BuildContext context) {
163
- return Container(color: _colorPalette.primary); // Cached, no lookup
164
- }
165
- }
166
- ```
167
-
168
- For child widgets that receive theme from parent (hybrid pattern):
169
- ```dart
170
- class CometChatImageBubble extends StatefulWidget {
171
- final CometChatColorPalette? colorPalette; // Optional — parent can pass cached value
172
- // ...
173
- }
174
-
175
- class _CometChatImageBubbleState extends State<CometChatImageBubble> {
176
- late CometChatColorPalette colorPalette;
177
- bool _themeInitialized = false;
178
-
179
- @override
180
- void didChangeDependencies() {
181
- super.didChangeDependencies();
182
- if (!_themeInitialized) {
183
- colorPalette = widget.colorPalette ?? CometChatThemeHelper.getColorPalette(context);
184
- _themeInitialized = true;
185
- }
186
- }
187
-
188
- @override
189
- void didUpdateWidget(CometChatImageBubble oldWidget) {
190
- super.didUpdateWidget(oldWidget);
191
- if (widget.colorPalette != oldWidget.colorPalette && widget.colorPalette != null) {
192
- colorPalette = widget.colorPalette!;
193
- }
194
- }
195
- }
196
- ```
197
-
198
- ## Localization
199
-
200
- To translate the UI, switch the active language, or override individual strings, route to the dedicated **`cometchat-i18n`** skill — the canonical cross-family localization reference. Flutter has **no `CometChatLocalize` class**: localization is wired via the kit's `Translations` localization delegate on `MaterialApp` (drive the language through the app `Locale`). `cometchat-i18n` covers bundled languages, custom translations, RTL, and date/time formatting. Docs: https://www.cometchat.com/docs/ui-kit/flutter/localize
201
-
202
- ## Sound Manager — custom notification & call sounds
203
-
204
- Sounds are a **behavioral** customization — driven by `SoundManager` (note: `SoundManager`, NOT `CometChatSoundManager`, and the stop method is `stop()`, NOT `pause()`). The UI Kit plays the built-in cues automatically; use this to override a cue with a custom asset.
205
-
206
- ```dart
207
- import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
208
-
209
- // Play a default cue — Sound: incomingMessage | outgoingMessage
210
- // | incomingMessageFromOther | incomingCall | outgoingCall
211
- SoundManager().play(sound: Sound.incomingMessage);
212
-
213
- // Override with a custom asset
214
- SoundManager().play(sound: Sound.outgoingMessage, customSound: "assets/sound/my_ping.wav");
215
-
216
- // Stop whatever is playing
217
- SoundManager().stop();
218
- ```
219
-
220
- > For the common case (muting/replacing message sounds), prefer the **widget-level** props instead of the manager: in V6 `CometChatConversations` exposes `disableSoundForMessages` and `customSoundForMessages`.
221
-
222
- ## Gotchas
223
-
224
- - `CometChatColorPalette` is NOT const-constructible. It has mutable default fields (`white = Colors.white`, `black = Colors.black`, `transparent = Colors.transparent`). Writing `const CometChatColorPalette(...)` or `const [CometChatColorPalette()]` won't compile.
225
- - `CometChatThemeHelper.getColorPalette(context)` does `Theme.of(context).extension<CometChatColorPalette>()` internally — this is an InheritedWidget lookup. In `build()` during keyboard animation, this fires every frame causing 44-95ms build times.
226
- - Extended primary colors are auto-generated by blending `primary` with white (light) or black (dark). Override individual shades only if the auto-blend doesn't match your brand.
227
- - `CometChatThemeMode.mode` is a static field — changing it doesn't trigger rebuilds. You need to also change `ThemeData` brightness or call `setState` on the `MaterialApp`.
228
- - Style `merge()` is null-aware: only non-null fields from the override replace the base. This means you can't explicitly set a field to `null` via merge.
229
-
230
- ## Anti-Patterns
231
-
232
- ```dart
233
- // ❌ WRONG — hardcoded colors
234
- Container(color: Colors.purple)
235
-
236
- // ✅ CORRECT — use theme tokens
237
- Container(color: colorPalette.primary)
238
- ```
239
-
240
- ```dart
241
- // ❌ WRONG — theme lookup in build
242
- @override
243
- Widget build(BuildContext context) {
244
- final colors = CometChatThemeHelper.getColorPalette(context);
245
- return Text('Hi', style: TextStyle(color: colors.textPrimary));
246
- }
247
-
248
- // ❌ ALSO WRONG — theme lookup in a method called from build
249
- Widget _buildProfileMenu() {
250
- final typography = CometChatThemeHelper.getTypography(context); // Still in build tree!
251
- final spacing = CometChatThemeHelper.getSpacing(context);
252
- // ...
253
- }
254
-
255
- // ✅ CORRECT — cached in didChangeDependencies
256
- late CometChatColorPalette _colors;
257
- late CometChatTypography _typography;
258
- late CometChatSpacing _spacing;
259
- bool _init = false;
260
- @override
261
- void didChangeDependencies() {
262
- super.didChangeDependencies();
263
- if (!_init) {
264
- _colors = CometChatThemeHelper.getColorPalette(context);
265
- _typography = CometChatThemeHelper.getTypography(context);
266
- _spacing = CometChatThemeHelper.getSpacing(context);
267
- _init = true;
268
- }
269
- }
270
- @override
271
- Widget build(BuildContext context) {
272
- return Text('Hi', style: TextStyle(color: _colors.textPrimary));
273
- }
274
- ```
275
-
276
- ```dart
277
- // ❌ WRONG — MediaQuery.of(context).size triggers full rebuild
278
- final size = MediaQuery.of(context).size;
279
-
280
- // ✅ CORRECT — only subscribes to size changes
281
- final size = MediaQuery.sizeOf(context);
282
- ```
283
-
284
- ## Checklist
285
-
286
- - [ ] Custom colors registered as `ThemeExtension` on `ThemeData`
287
- - [ ] Both `theme` and `darkTheme` configured if supporting dark mode
288
- - [ ] Theme values cached in `didChangeDependencies()`, not `build()`
289
- - [ ] No `CometChatThemeHelper.get*()` calls in any method invoked during `build()` (including helper methods like `_buildProfileMenu()`)
290
- - [ ] `_themeInitialized` flag prevents re-init during keyboard animation
291
- - [ ] No hardcoded colors — all from `CometChatColorPalette`
292
- - [ ] `MediaQuery.sizeOf(context)` used instead of `MediaQuery.of(context).size`
293
- - [ ] Style overrides use component's Style class, not inline styles