@acorex/components 22.1.8 → 22.2.0-next.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 (317) hide show
  1. package/emoji/README.md +3 -0
  2. package/emojipicker/README.md +3 -0
  3. package/fesm2022/acorex-components-accordion.mjs +10 -10
  4. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  5. package/fesm2022/acorex-components-action-sheet.mjs +15 -14
  6. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  7. package/fesm2022/acorex-components-alert.mjs +7 -7
  8. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  9. package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
  10. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  11. package/fesm2022/acorex-components-audio-wave.mjs +32 -11
  12. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  13. package/fesm2022/acorex-components-autocomplete.mjs +9 -8
  14. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  15. package/fesm2022/acorex-components-avatar.mjs +10 -10
  16. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  17. package/fesm2022/acorex-components-badge.mjs +7 -7
  18. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  19. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  20. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  21. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  22. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  23. package/fesm2022/acorex-components-bubble.mjs +71 -0
  24. package/fesm2022/acorex-components-bubble.mjs.map +1 -0
  25. package/fesm2022/acorex-components-button-group.mjs +10 -10
  26. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  27. package/fesm2022/acorex-components-button.mjs +365 -55
  28. package/fesm2022/acorex-components-button.mjs.map +1 -1
  29. package/fesm2022/acorex-components-calendar.mjs +40 -37
  30. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  31. package/fesm2022/acorex-components-check-box.mjs +7 -7
  32. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  33. package/fesm2022/acorex-components-chips.mjs +7 -7
  34. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  35. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  36. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  37. package/fesm2022/acorex-components-code-editor.mjs +44 -19
  38. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  39. package/fesm2022/acorex-components-color-box.mjs +7 -7
  40. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  41. package/fesm2022/acorex-components-color-palette.mjs +28 -28
  42. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  43. package/fesm2022/acorex-components-combo-box.mjs +158 -31
  44. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  45. package/fesm2022/acorex-components-command.mjs +11 -7
  46. package/fesm2022/acorex-components-command.mjs.map +1 -1
  47. package/fesm2022/acorex-components-comment.mjs +28 -28
  48. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  49. package/fesm2022/{acorex-components-conversation-acorex-components-conversation-Cl_dlCTX.mjs → acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs} +2889 -1016
  50. package/fesm2022/acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs.map +1 -0
  51. package/fesm2022/{acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs → acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs} +4 -4
  52. package/fesm2022/{acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs.map → acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map} +1 -1
  53. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -1
  54. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs +87 -0
  55. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -0
  56. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-_F-fv3Ti.mjs → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs} +5 -5
  57. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-_F-fv3Ti.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs.map} +1 -1
  58. package/fesm2022/acorex-components-conversation.mjs +1 -1
  59. package/fesm2022/acorex-components-cron-job.mjs +47 -47
  60. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  61. package/fesm2022/acorex-components-data-list.mjs +3 -3
  62. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  63. package/fesm2022/acorex-components-data-pager.mjs +181 -183
  64. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  65. package/fesm2022/acorex-components-data-table.mjs +777 -160
  66. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  67. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  68. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  69. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  70. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  71. package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
  72. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  73. package/fesm2022/acorex-components-decorators.mjs +59 -117
  74. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  75. package/fesm2022/acorex-components-dialog.mjs +10 -10
  76. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  77. package/fesm2022/acorex-components-drawer.mjs +11 -11
  78. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  79. package/fesm2022/acorex-components-dropdown-button.mjs +9 -8
  80. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  81. package/fesm2022/acorex-components-dropdown.mjs +19 -14
  82. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  83. package/fesm2022/acorex-components-editor.mjs +15 -14
  84. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  85. package/fesm2022/acorex-components-emoji.mjs +74 -0
  86. package/fesm2022/acorex-components-emoji.mjs.map +1 -0
  87. package/fesm2022/acorex-components-emojipicker.mjs +425 -0
  88. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
  89. package/fesm2022/acorex-components-fab.mjs +6 -6
  90. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  91. package/fesm2022/acorex-components-file-viewer.mjs +226 -127
  92. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  93. package/fesm2022/acorex-components-form.mjs +16 -16
  94. package/fesm2022/acorex-components-form.mjs.map +1 -1
  95. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  96. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  97. package/fesm2022/acorex-components-highlight.mjs +80 -0
  98. package/fesm2022/acorex-components-highlight.mjs.map +1 -0
  99. package/fesm2022/acorex-components-image-editor.mjs +217 -79
  100. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  101. package/fesm2022/acorex-components-image.mjs +7 -7
  102. package/fesm2022/acorex-components-image.mjs.map +1 -1
  103. package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
  104. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
  105. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  106. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  107. package/fesm2022/acorex-components-kanban.mjs +3 -3
  108. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  109. package/fesm2022/acorex-components-kbd.mjs +6 -6
  110. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  111. package/fesm2022/acorex-components-label.mjs +7 -7
  112. package/fesm2022/acorex-components-label.mjs.map +1 -1
  113. package/fesm2022/acorex-components-list.mjs +28 -9
  114. package/fesm2022/acorex-components-list.mjs.map +1 -1
  115. package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
  116. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  117. package/fesm2022/acorex-components-loading.mjs +16 -16
  118. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  119. package/fesm2022/acorex-components-lookup.mjs +771 -148
  120. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  121. package/fesm2022/acorex-components-map.mjs +20 -13
  122. package/fesm2022/acorex-components-map.mjs.map +1 -1
  123. package/fesm2022/acorex-components-media-viewer.mjs +215 -218
  124. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  125. package/fesm2022/acorex-components-menu.mjs +146 -45
  126. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  127. package/fesm2022/acorex-components-message-status.mjs +71 -0
  128. package/fesm2022/acorex-components-message-status.mjs.map +1 -0
  129. package/fesm2022/acorex-components-message-time.mjs +36 -0
  130. package/fesm2022/acorex-components-message-time.mjs.map +1 -0
  131. package/fesm2022/acorex-components-message.mjs +120 -0
  132. package/fesm2022/acorex-components-message.mjs.map +1 -0
  133. package/fesm2022/acorex-components-navbar.mjs +7 -7
  134. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  135. package/fesm2022/acorex-components-notification.mjs +13 -14
  136. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  137. package/fesm2022/acorex-components-number-box.mjs +17 -10
  138. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  139. package/fesm2022/acorex-components-otp.mjs +7 -7
  140. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  141. package/fesm2022/acorex-components-page.mjs +10 -10
  142. package/fesm2022/acorex-components-page.mjs.map +1 -1
  143. package/fesm2022/acorex-components-paint.mjs +25 -25
  144. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  145. package/fesm2022/acorex-components-password-box.mjs +10 -10
  146. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  147. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  148. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  149. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  150. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  151. package/fesm2022/acorex-components-picker.mjs +13 -13
  152. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  153. package/fesm2022/acorex-components-popover.mjs +61 -13
  154. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  155. package/fesm2022/acorex-components-popup.mjs +631 -167
  156. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  157. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  158. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  159. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  160. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  161. package/fesm2022/acorex-components-radio.mjs +7 -7
  162. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  163. package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
  164. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  165. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  166. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  167. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  168. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  169. package/fesm2022/acorex-components-reaction.mjs +144 -0
  170. package/fesm2022/acorex-components-reaction.mjs.map +1 -0
  171. package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
  172. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  173. package/fesm2022/acorex-components-result.mjs +7 -7
  174. package/fesm2022/acorex-components-result.mjs.map +1 -1
  175. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  176. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  177. package/fesm2022/acorex-components-rrule.mjs +9 -9
  178. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  179. package/fesm2022/acorex-components-scheduler-picker.mjs +54 -54
  180. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  181. package/fesm2022/acorex-components-scheduler.mjs +35 -35
  182. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  183. package/fesm2022/acorex-components-search-box.mjs +7 -7
  184. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  185. package/fesm2022/acorex-components-select-box.mjs +9 -8
  186. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  187. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  188. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  189. package/fesm2022/acorex-components-side-menu.mjs +55 -42
  190. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  191. package/fesm2022/acorex-components-sidebar.mjs +28 -28
  192. package/fesm2022/acorex-components-sidebar.mjs.map +1 -1
  193. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  194. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  195. package/fesm2022/acorex-components-slider.mjs +7 -7
  196. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  197. package/fesm2022/acorex-components-sliding-item.mjs +13 -13
  198. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  199. package/fesm2022/acorex-components-step-wizard.mjs +16 -18
  200. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  201. package/fesm2022/acorex-components-switch.mjs +10 -10
  202. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  203. package/fesm2022/acorex-components-tabs.mjs +367 -72
  204. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  205. package/fesm2022/acorex-components-tag-box.mjs +7 -7
  206. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  207. package/fesm2022/acorex-components-tag.mjs +7 -7
  208. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  209. package/fesm2022/acorex-components-text-area.mjs +7 -7
  210. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  211. package/fesm2022/acorex-components-text-box.mjs +7 -7
  212. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  213. package/fesm2022/acorex-components-time-duration.mjs +7 -7
  214. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  215. package/fesm2022/acorex-components-time-line.mjs +10 -10
  216. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  217. package/fesm2022/acorex-components-toast.mjs +14 -14
  218. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  219. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  220. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  221. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  222. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  223. package/fesm2022/acorex-components-tree-view.mjs +54 -14
  224. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  225. package/fesm2022/acorex-components-uploader.mjs +13 -13
  226. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  227. package/fesm2022/acorex-components-video-player.mjs +7 -7
  228. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  229. package/fesm2022/acorex-components-wysiwyg.mjs +691 -295
  230. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  231. package/fesm2022/acorex-components.mjs.map +1 -1
  232. package/highlight/README.md +13 -0
  233. package/inline-reaction/README.md +3 -0
  234. package/lookup/README.md +1 -1
  235. package/message/README.md +3 -0
  236. package/message-status/README.md +3 -0
  237. package/message-time/README.md +3 -0
  238. package/package.json +48 -13
  239. package/reaction/README.md +3 -0
  240. package/types/acorex-components-action-sheet.d.ts +1 -1
  241. package/types/acorex-components-audio-wave.d.ts +8 -0
  242. package/types/acorex-components-bubble.d.ts +31 -0
  243. package/types/acorex-components-button.d.ts +74 -9
  244. package/types/acorex-components-calendar.d.ts +13 -4
  245. package/types/acorex-components-check-box.d.ts +1 -1
  246. package/types/acorex-components-code-editor.d.ts +4 -1
  247. package/types/acorex-components-color-box.d.ts +1 -1
  248. package/types/acorex-components-color-palette.d.ts +2 -2
  249. package/types/acorex-components-combo-box.d.ts +8 -2
  250. package/types/acorex-components-command.d.ts +3 -1
  251. package/types/acorex-components-conversation.d.ts +418 -119
  252. package/types/acorex-components-cron-job.d.ts +6 -6
  253. package/types/acorex-components-data-pager.d.ts +27 -9
  254. package/types/acorex-components-data-table.d.ts +221 -21
  255. package/types/acorex-components-datetime-box.d.ts +1 -1
  256. package/types/acorex-components-datetime-picker.d.ts +1 -1
  257. package/types/acorex-components-decorators.d.ts +15 -33
  258. package/types/acorex-components-dialog.d.ts +1 -1
  259. package/types/acorex-components-dropdown-button.d.ts +2 -1
  260. package/types/acorex-components-dropdown.d.ts +6 -1
  261. package/types/acorex-components-editor.d.ts +1 -1
  262. package/types/acorex-components-emoji.d.ts +42 -0
  263. package/types/acorex-components-emojipicker.d.ts +146 -0
  264. package/types/acorex-components-file-viewer.d.ts +13 -2
  265. package/types/acorex-components-highlight.d.ts +31 -0
  266. package/types/acorex-components-image-editor.d.ts +19 -2
  267. package/types/acorex-components-inline-reaction.d.ts +52 -0
  268. package/types/acorex-components-list.d.ts +12 -0
  269. package/types/acorex-components-loading-dialog.d.ts +1 -1
  270. package/types/acorex-components-loading.d.ts +1 -1
  271. package/types/acorex-components-lookup.d.ts +214 -79
  272. package/types/acorex-components-map.d.ts +7 -2
  273. package/types/acorex-components-media-viewer.d.ts +4 -3
  274. package/types/acorex-components-menu.d.ts +17 -5
  275. package/types/acorex-components-message-status.d.ts +23 -0
  276. package/types/acorex-components-message-time.d.ts +19 -0
  277. package/types/acorex-components-message.d.ts +59 -0
  278. package/types/acorex-components-notification.d.ts +1 -1
  279. package/types/acorex-components-number-box.d.ts +2 -1
  280. package/types/acorex-components-otp.d.ts +1 -1
  281. package/types/acorex-components-page.d.ts +2 -2
  282. package/types/acorex-components-paint.d.ts +2 -2
  283. package/types/acorex-components-password-box.d.ts +1 -1
  284. package/types/acorex-components-phone-box.d.ts +1 -1
  285. package/types/acorex-components-popover.d.ts +13 -1
  286. package/types/acorex-components-popup.d.ts +183 -50
  287. package/types/acorex-components-rail-navigation.d.ts +1 -1
  288. package/types/acorex-components-range-slider.d.ts +1 -1
  289. package/types/acorex-components-reaction.d.ts +85 -0
  290. package/types/acorex-components-rest-api-generator.d.ts +1 -1
  291. package/types/acorex-components-rrule.d.ts +1 -1
  292. package/types/acorex-components-scheduler-picker.d.ts +1 -1
  293. package/types/acorex-components-scheduler.d.ts +1 -1
  294. package/types/acorex-components-search-box.d.ts +1 -1
  295. package/types/acorex-components-side-menu.d.ts +6 -8
  296. package/types/acorex-components-slider.d.ts +1 -1
  297. package/types/acorex-components-step-wizard.d.ts +4 -4
  298. package/types/acorex-components-switch.d.ts +1 -1
  299. package/types/acorex-components-tabs.d.ts +106 -19
  300. package/types/acorex-components-tag-box.d.ts +2 -2
  301. package/types/acorex-components-text-area.d.ts +1 -1
  302. package/types/acorex-components-text-box.d.ts +1 -1
  303. package/types/acorex-components-time-duration.d.ts +1 -1
  304. package/types/acorex-components-toast.d.ts +1 -1
  305. package/types/acorex-components-tree-view.d.ts +23 -1
  306. package/types/acorex-components-wysiwyg.d.ts +426 -77
  307. package/fesm2022/acorex-components-conversation-acorex-components-conversation-Cl_dlCTX.mjs.map +0 -1
  308. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-AO1evM19.mjs +0 -85
  309. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-AO1evM19.mjs.map +0 -1
  310. package/fesm2022/acorex-components-flow-chart.mjs +0 -735
  311. package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
  312. package/fesm2022/acorex-components-query-builder.mjs +0 -267
  313. package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
  314. package/flow-chart/README.md +0 -3
  315. package/query-builder/README.md +0 -3
  316. package/types/acorex-components-flow-chart.d.ts +0 -187
  317. package/types/acorex-components-query-builder.d.ts +0 -52
@@ -6,8 +6,10 @@ import { AXTranslationService } from '@acorex/core/translation';
6
6
  import * as _acorex_components_action_sheet from '@acorex/components/action-sheet';
7
7
  import { AXActionSheetRef } from '@acorex/components/action-sheet';
8
8
  import * as _acorex_components_popup from '@acorex/components/popup';
9
- import { AXPopupService, AXPopupRef } from '@acorex/components/popup';
9
+ import { AXPopupRef, AXPopupService } from '@acorex/components/popup';
10
10
  import { AXFileUploadOptions, AXUploadResult, AXUploadReference, AXUploaderService, AXUploaderFileChangeEvent } from '@acorex/cdk/uploader';
11
+ import { AXToastService } from '@acorex/components/toast';
12
+ import { AXValidationRuleResult } from '@acorex/core/validation';
11
13
  import { AXListComponent } from '@acorex/components/list';
12
14
  import * as rxjs from 'rxjs';
13
15
  import { Observable } from 'rxjs';
@@ -17,12 +19,10 @@ import { AXTabLocation } from '@acorex/components/tabs';
17
19
  import { AXBasePageComponent } from '@acorex/components/page';
18
20
  import * as _acorex_core_file from '@acorex/core/file';
19
21
  import { AXFileTypeRegistryService, AXFileTypeExtensionHint, AXFileTypeOpenContext, AXFileTypeInfoProvider, AXFileType, AXFileService } from '@acorex/core/file';
20
- import { AXToastService } from '@acorex/components/toast';
21
- import { AXValidationRuleResult } from '@acorex/core/validation';
22
22
  import { AXMapMarker } from '@acorex/components/map';
23
+ import { AXWaveConfig, AXAudioWaveChangeEvent } from '@acorex/components/audio-wave';
23
24
  import { AXRangeSliderValue } from '@acorex/components/range-slider';
24
25
  import { SafeHtml } from '@angular/platform-browser';
25
- import { AXWaveConfig, AXAudioWaveChangeEvent } from '@acorex/components/audio-wave';
26
26
  import * as i1 from '@angular/common';
27
27
  import * as i2 from '@angular/forms';
28
28
 
@@ -185,6 +185,7 @@ interface AXConversationFileMediaItem extends AXConversationMediaItemFields {
185
185
  mimeType: string;
186
186
  thumbnailUrl?: string;
187
187
  extension?: string;
188
+ duration?: number;
188
189
  }
189
190
  interface AXConversationFilePayload {
190
191
  type: 'file';
@@ -471,6 +472,8 @@ interface AXConversationMessageListThemeBackground {
471
472
  }
472
473
  /** Single CSS value (both themes) or per-theme `{ light, dark }` backgrounds. */
473
474
  type AXConversationMessageListBackground = string | AXConversationMessageListThemeBackground;
475
+ /** Composer file-attachment UI: picker popup vs inline strip above the input. */
476
+ type AXConversationComposerAttachmentPresentation = 'overlay' | 'banner';
474
477
  /**
475
478
  * Conversation metadata
476
479
  * Extensible map for app-specific conversation data.
@@ -481,10 +484,16 @@ interface AXConversationMetadata extends Record<string, unknown> {
481
484
  /** Optional custom empty-state component for the message list. */
482
485
  messageListEmptyComponent?: Type<AXConversationMessageListEmptyComponent>;
483
486
  /**
484
- * When `false`, hides reaction UI (add button, bubbles, picker) for this conversation.
485
- * Defaults to `true` when omitted.
487
+ * Explicit reaction UI override for this conversation.
488
+ * When omitted, reactions are enabled for `private` / `group` / `channel` and disabled for `bot`.
486
489
  */
487
490
  reactionsEnabled?: boolean;
491
+ /**
492
+ * How composer file attachments are presented.
493
+ * `overlay` opens the picker popup; `banner` keeps files above the composer (ChatGPT-style).
494
+ * When omitted, `bot` chats default to `banner` and other types to `overlay`.
495
+ */
496
+ composerAttachmentPresentation?: AXConversationComposerAttachmentPresentation;
488
497
  }
489
498
  /** Contract for custom empty-state components rendered by message list. */
490
499
  interface AXConversationMessageListEmptyComponent {
@@ -693,6 +702,72 @@ declare abstract class AXConversationBaseRegistry<T extends AXConversationRegist
693
702
  protected abstract getRegistryName(): string;
694
703
  }
695
704
 
705
+ /**
706
+ * Shared upload state and helpers for composer media pickers.
707
+ */
708
+
709
+ /** Stable id for `@for` tracking while upload state is patched immutably. */
710
+ declare function createPickerUploadItemId(): string;
711
+ interface AXConversationComposerPickerUploadItem {
712
+ id: string;
713
+ file: File;
714
+ preview?: string;
715
+ duration?: number;
716
+ uploadProgress?: number;
717
+ uploading?: boolean;
718
+ uploaded?: boolean;
719
+ uploadedUrl?: string;
720
+ mediaId?: string;
721
+ error?: string;
722
+ abortController?: AbortController;
723
+ }
724
+ declare function getPickerCancelUploadLabel(translation: AXTranslationService): string;
725
+ declare function abortPickerUploads(items: Iterable<{
726
+ abortController?: AbortController;
727
+ } | null | undefined>): void;
728
+ interface AXConversationCleanupPickerUploadsOptions {
729
+ retainUploaded?: boolean;
730
+ }
731
+ /** Upload finished; reference is {@link mediaId} and/or a non-empty session url. */
732
+ declare function isPickerItemReadyToSend(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId'>): boolean;
733
+ /** Build uploader result shape for {@link *ItemFromUpload} after picker upload. */
734
+ declare function pickerItemToUploadResult(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId' | 'file'>): {
735
+ url: string;
736
+ mediaId?: string;
737
+ mimeType: string;
738
+ size: number;
739
+ } | null;
740
+ declare function pickerItemToMediaReference(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId' | 'file'>): AXConversationUploaderReference | null;
741
+ declare function deleteUploadedPickerMedia(uploader: AXUploaderService, items: Iterable<AXConversationComposerPickerUploadItem | null | undefined>): Promise<void>;
742
+ declare function cleanupPickerUploads(uploader: AXUploaderService, items: Iterable<AXConversationComposerPickerUploadItem | null | undefined>, options?: AXConversationCleanupPickerUploadsOptions): void;
743
+ declare function revokePickerBlobPreviews(items: Iterable<{
744
+ preview?: string;
745
+ } | null | undefined>): void;
746
+ declare function isUploadAborted(error: unknown, signal?: AbortSignal): boolean;
747
+ declare function limitFilesToCapacity(files: File[], currentCount: number, maxFiles: number): File[];
748
+ declare function uploadPickerFile(uploader: AXUploaderService, conversationId: string, file: File, onProgress: (percent: number) => void, signal?: AbortSignal): Promise<{
749
+ url: string;
750
+ mediaId?: string;
751
+ mimeType: string;
752
+ size: number;
753
+ }>;
754
+ declare function notifyMaxFilesCapacityExceeded(toast: AXToastService, translation: AXTranslationService, maxFiles: number): void;
755
+ /** User-facing message for a file validation failure. */
756
+ declare function formatPickerValidationMessage(translation: AXTranslationService, file: File, error: AXValidationRuleResult | undefined): string;
757
+ /** Show a warning toast for each failed validation rule result. */
758
+ declare function notifyPickerValidationErrors(toast: AXToastService, translation: AXTranslationService, rejected: {
759
+ file: File;
760
+ errors: AXValidationRuleResult[];
761
+ }[]): void;
762
+ /** Close popup/action-sheet host or inline composer shell after send/cancel. */
763
+ declare function dismissComposerPickerHost(composerService: AXConversationComposerService, popupRef?: AXPopupRef | null, actionSheetRef?: AXActionSheetRef | null): void;
764
+
765
+ type AXConversationComposerDraftAttachmentKind = 'image' | 'video' | 'audio' | 'file';
766
+ interface AXConversationComposerDraftAttachment extends AXConversationComposerPickerUploadItem {
767
+ kind: AXConversationComposerDraftAttachmentKind;
768
+ icon: string;
769
+ }
770
+
696
771
  /** Primary composer button mode (send / cancel / stopping / default action / locked). */
697
772
  type AXConversationComposerPrimaryButtonMode = 'send' | 'cancel' | 'stopping' | 'default-action' | 'locked';
698
773
  declare class AXConversationComposerService {
@@ -700,8 +775,13 @@ declare class AXConversationComposerService {
700
775
  private readonly generationState;
701
776
  private readonly translation;
702
777
  private readonly popupService;
778
+ private readonly uploader;
779
+ private readonly fileService;
780
+ private readonly toast;
703
781
  private readonly config;
782
+ private readonly destroyRef;
704
783
  private readonly _activeActionOverlay;
784
+ constructor();
705
785
  private get registry();
706
786
  private readonly _replyMessage;
707
787
  private readonly _editMessage;
@@ -711,8 +791,10 @@ declare class AXConversationComposerService {
711
791
  readonly activeMessages: _angular_core.Signal<AXConversationMessage[]>;
712
792
  /** Draft text */
713
793
  readonly draftText: _angular_core.WritableSignal<string>;
714
- /** Attachments */
715
- readonly attachments: _angular_core.WritableSignal<File[]>;
794
+ /** Inline composer attachments shown above the input in banner mode. */
795
+ readonly draftAttachments: _angular_core.WritableSignal<AXConversationComposerDraftAttachment[]>;
796
+ readonly draftAttachmentsReady: _angular_core.Signal<boolean>;
797
+ readonly usesAttachmentBanner: _angular_core.Signal<boolean>;
716
798
  /** Incremented to request focus on the composer text area (handled by AXConversationComposerComponent). */
717
799
  private readonly _focusRequest;
718
800
  readonly focusRequest: _angular_core.Signal<number>;
@@ -749,6 +831,7 @@ declare class AXConversationComposerService {
749
831
  startEdit(message: AXConversationMessage): void;
750
832
  /** Focus the composer text area when the composer component is mounted. */
751
833
  focusComposer(): void;
834
+ clearReplyEdit(): void;
752
835
  clear(): void;
753
836
  /**
754
837
  * Persist draft for the previous conversation and reset composer UI state when switching conversations.
@@ -767,6 +850,15 @@ declare class AXConversationComposerService {
767
850
  toggleable?: boolean;
768
851
  initialFiles?: File[];
769
852
  }): Promise<void>;
853
+ browseDraftAttachments(fileType?: string): Promise<number>;
854
+ addDraftAttachments(files: File[]): Promise<number>;
855
+ removeDraftAttachment(id: string): void;
856
+ clearDraftAttachments(options?: {
857
+ retainUploaded?: boolean;
858
+ }): void;
859
+ buildDraftAttachmentCommand(caption?: string): Promise<AXConversationSendMessageCommand | null>;
860
+ private uploadDraftAttachment;
861
+ private patchDraftAttachment;
770
862
  /**
771
863
  * Hide the active action overlay.
772
864
  */
@@ -792,7 +884,7 @@ declare class AXConversationComposerService {
792
884
  */
793
885
  clearDraft(conversationId: string): void;
794
886
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerService, never>;
795
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationComposerService>;
887
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
796
888
  }
797
889
 
798
890
  /**
@@ -969,7 +1061,7 @@ declare class AXConversationComposerActionRegistry {
969
1061
  */
970
1062
  clear(): void;
971
1063
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerActionRegistry, never>;
972
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationComposerActionRegistry>;
1064
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
973
1065
  }
974
1066
 
975
1067
  /**
@@ -1030,7 +1122,7 @@ declare class AXConversationComposerTabRegistry {
1030
1122
  */
1031
1123
  clear(): void;
1032
1124
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerTabRegistry, never>;
1033
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationComposerTabRegistry>;
1125
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1034
1126
  }
1035
1127
 
1036
1128
  /**
@@ -1104,7 +1196,7 @@ declare class AXConversationItemActionRegistry extends AXConversationBaseRegistr
1104
1196
  getActionTooltip(action: AXConversationItemAction, conversation: AXConversation): string | undefined;
1105
1197
  executeAction(actionId: string, context: AXConversationItemActionContext): Promise<void>;
1106
1198
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationItemActionRegistry, never>;
1107
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationItemActionRegistry>;
1199
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1108
1200
  }
1109
1201
 
1110
1202
  /**
@@ -1171,9 +1263,27 @@ declare class AXConversationTabRegistry {
1171
1263
  */
1172
1264
  clear(): void;
1173
1265
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationTabRegistry, never>;
1174
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationTabRegistry>;
1266
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1175
1267
  }
1176
1268
 
1269
+ /** Visual chrome around a message body in the list. */
1270
+ type AXConversationMessageChrome = 'bubble' | 'plain';
1271
+ /** Max consecutive emoji graphemes that render as a jumbo (sticker-sized) text message. */
1272
+ declare const AX_CONVERSATION_JUMBO_EMOJI_MAX = 3;
1273
+ /**
1274
+ * Resolve registry chrome config to a concrete value.
1275
+ * Default is {@link AXConversationMessageChrome bubble}.
1276
+ */
1277
+ declare function resolveMessageChrome(chrome: AXConversationMessageChrome | ((message: AXConversationMessage) => AXConversationMessageChrome) | undefined, message: AXConversationMessage): AXConversationMessageChrome;
1278
+ /** Visible graphemes in trimmed text (whitespace between emojis is dropped). */
1279
+ declare function listTextGraphemes(text: string | null | undefined): string[];
1280
+ /** Count emoji graphemes in trimmed text; `0` when mixed with other characters. */
1281
+ declare function countLoneEmojis(text: string | null | undefined): number;
1282
+ declare function isJumboEmojiText(text: string | null | undefined): boolean;
1283
+ declare function isJumboEmojiTextMessage(message: AXConversationMessage): boolean;
1284
+ /** Types that never sit inside a bubble cluster with neighboring messages. */
1285
+ declare function isPlainChromeMessage(message: AXConversationMessage): boolean;
1286
+
1177
1287
  /**
1178
1288
  * Message Renderer Registry
1179
1289
  * Register custom message renderers for different message types
@@ -1248,6 +1358,12 @@ interface AXConversationMessageRenderer {
1248
1358
  canHandle: (message: AXConversationMessage) => boolean;
1249
1359
  /** Renderer capabilities */
1250
1360
  capabilities: AXConversationMessageRendererCapabilities;
1361
+ /**
1362
+ * List chrome for this message type.
1363
+ * `plain` removes bubble fill, padding, shadow, and tail. Default is `bubble`.
1364
+ * Pass a function when chrome depends on payload (e.g. jumbo emoji text).
1365
+ */
1366
+ chrome?: AXConversationMessageChrome | ((message: AXConversationMessage) => AXConversationMessageChrome);
1251
1367
  /** Display name */
1252
1368
  displayName?: string;
1253
1369
  /** Icon name/class */
@@ -1308,7 +1424,7 @@ declare class AXConversationMessageRendererRegistry {
1308
1424
  */
1309
1425
  clear(): void;
1310
1426
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageRendererRegistry, never>;
1311
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationMessageRendererRegistry>;
1427
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1312
1428
  }
1313
1429
 
1314
1430
  /**
@@ -1427,7 +1543,7 @@ declare class AXConversationInfoBarService {
1427
1543
  clearSearch(): void;
1428
1544
  private _extractOnClose;
1429
1545
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationInfoBarService, never>;
1430
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationInfoBarService>;
1546
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1431
1547
  }
1432
1548
 
1433
1549
  /**
@@ -1543,7 +1659,7 @@ declare class AXConversationInfoBarActionRegistry extends AXConversationBaseRegi
1543
1659
  */
1544
1660
  getActionTooltip(action: AXConversationInfoBarAction, conversation: AXConversation): string | undefined;
1545
1661
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationInfoBarActionRegistry, never>;
1546
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationInfoBarActionRegistry>;
1662
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1547
1663
  }
1548
1664
 
1549
1665
  /**
@@ -1634,7 +1750,7 @@ declare class AXConversationMessageActionRegistry {
1634
1750
  */
1635
1751
  clear(): void;
1636
1752
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageActionRegistry, never>;
1637
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationMessageActionRegistry>;
1753
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1638
1754
  }
1639
1755
 
1640
1756
  declare class AXConversationComposerComponent implements OnDestroy {
@@ -1655,8 +1771,9 @@ declare class AXConversationComposerComponent implements OnDestroy {
1655
1771
  private readonly textAreaRef;
1656
1772
  /** Draft text - use service */
1657
1773
  readonly draftText: _angular_core.WritableSignal<string>;
1658
- /** Attachments - use service */
1659
- readonly attachments: _angular_core.WritableSignal<File[]>;
1774
+ /** Draft attachments shown above the composer in banner mode. */
1775
+ readonly draftAttachments: _angular_core.WritableSignal<_acorex_components_conversation.AXConversationComposerDraftAttachment[]>;
1776
+ readonly usesAttachmentBanner: _angular_core.Signal<boolean>;
1660
1777
  /** Editing message */
1661
1778
  readonly editingMessage: _angular_core.WritableSignal<any>;
1662
1779
  /** Replying to message */
@@ -1687,6 +1804,7 @@ declare class AXConversationComposerComponent implements OnDestroy {
1687
1804
  readonly placeholder: _angular_core.Signal<string>;
1688
1805
  constructor();
1689
1806
  private draftSaveTimeout?;
1807
+ private seededEditMessageId;
1690
1808
  /** Number of input rows - use service */
1691
1809
  readonly inputRows: _angular_core.Signal<number>;
1692
1810
  /** Can send message - use service */
@@ -1713,6 +1831,10 @@ declare class AXConversationComposerComponent implements OnDestroy {
1713
1831
  readonly defaultAction: _angular_core.Signal<AXConversationComposerAction>;
1714
1832
  /** Handle key down (send on Enter; typing is driven by draft changes only). */
1715
1833
  onKeyDown(event: AXHtmlEvent<KeyboardEvent>): void;
1834
+ /** Keep the draft signal in sync with ngModel (signal two-way bind is unreliable on ax-text-area). */
1835
+ onDraftModelChange(value: string): void;
1836
+ /** Keep the draft signal in sync with ax-text-area CVA output. */
1837
+ onDraftValueChanged(event: unknown): void;
1716
1838
  /** Handle draft text changes — throttled typing indicator via conversation service. */
1717
1839
  onDraftChanged(): void;
1718
1840
  /** Cleanup on destroy */
@@ -1756,9 +1878,13 @@ declare class AXConversationComposerComponent implements OnDestroy {
1756
1878
  getDefaultActionIcon(): string;
1757
1879
  /** Handle voice click */
1758
1880
  onVoiceClick(): void;
1759
- /** Remove attachment */
1760
- removeAttachment(index: number): void;
1761
- /** Cancel edit/reply mode */
1881
+ /** Remove a draft attachment from the composer banner. */
1882
+ removeDraftAttachment(id: string): void;
1883
+ addDraftAttachments(): void;
1884
+ dismissDraftAttachments(): void;
1885
+ draftAttachmentLabel(name: string): string;
1886
+ canAddDraftAttachments(): boolean;
1887
+ /** Cancel edit/reply mode without dropping draft attachments. */
1762
1888
  cancelEditReply(): void;
1763
1889
  /** Start editing a message */
1764
1890
  startEdit(message: any): void;
@@ -1766,6 +1892,11 @@ declare class AXConversationComposerComponent implements OnDestroy {
1766
1892
  startReply(message: AXConversationMessage): void;
1767
1893
  /** Focus the native textarea inside ax-text-area */
1768
1894
  private focusTextArea;
1895
+ /** Prefer the visible textarea when it differs from the original edit; else the draft signal. */
1896
+ private resolveComposerText;
1897
+ private readOriginalEditText;
1898
+ private readNativeComposerText;
1899
+ private readChangedText;
1769
1900
  private getClickTarget;
1770
1901
  /** Handle action click */
1771
1902
  onActionClick(actionId: string, event?: AXClickEvent | MouseEvent, initialFiles?: File[]): Promise<void>;
@@ -2004,7 +2135,7 @@ declare class AXConversationApiLoggerService {
2004
2135
  private readonly config;
2005
2136
  log(entry: AXConversationApiLogEntry): void;
2006
2137
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationApiLoggerService, never>;
2007
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationApiLoggerService>;
2138
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
2008
2139
  }
2009
2140
 
2010
2141
  /**
@@ -2060,6 +2191,7 @@ interface AXConversationUpdateData {
2060
2191
  interface AXConversationDeleteOptions {
2061
2192
  /**
2062
2193
  * Private: destroy the chat for every participant (Telegram "delete for both").
2194
+ * Bot: always delete for both sides.
2063
2195
  * Group/channel: only valid for the creator — destroys the room for everyone.
2064
2196
  * Defaults to `false` (hide / clear history for the current user only).
2065
2197
  */
@@ -3025,7 +3157,7 @@ declare class AXConversationComposerGenerationStateService {
3025
3157
  /** User requested cancel — enters `stopping` until {@link setGenerating}(false) is called. */
3026
3158
  cancel(): void;
3027
3159
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerGenerationStateService, never>;
3028
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationComposerGenerationStateService>;
3160
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
3029
3161
  }
3030
3162
 
3031
3163
  /**
@@ -3055,7 +3187,7 @@ declare class AXConversationRegistryService {
3055
3187
  */
3056
3188
  clearAll(): void;
3057
3189
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationRegistryService, never>;
3058
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationRegistryService>;
3190
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
3059
3191
  }
3060
3192
 
3061
3193
  /** Result of loading a message page (newest-first APIs, merged ascending in the store). */
@@ -3075,7 +3207,10 @@ interface AXConversationLoadMessagesResult {
3075
3207
  * - Automatic rollback on failures
3076
3208
  */
3077
3209
  declare class AXConversationService {
3210
+ private static readonly createDisplayMetadataKeys;
3078
3211
  private static normalizeOptionalString;
3212
+ /** Keep flags like `reactionsEnabled`; drop display fields already mapped onto the conversation. */
3213
+ private static toPersistedConversationMetadata;
3079
3214
  private readonly config;
3080
3215
  private readonly state;
3081
3216
  readonly userApi: AXConversationUserApi;
@@ -3315,6 +3450,12 @@ declare class AXConversationService {
3315
3450
  * Handle message update
3316
3451
  */
3317
3452
  private handleMessageUpdate;
3453
+ /**
3454
+ * After a local text edit, entity cache / status persist can echo the pre-edit payload.
3455
+ * Keep the newer local bubble until a strictly newer edit arrives.
3456
+ */
3457
+ private preferLocalEditedPayload;
3458
+ private readTextPayload;
3318
3459
  /**
3319
3460
  * Bump reply/forward counts locally when realtime events arrive outside the active message list.
3320
3461
  */
@@ -3412,8 +3553,10 @@ declare class AXConversationService {
3412
3553
  /**
3413
3554
  * Delete, hide, or leave a conversation.
3414
3555
  * Opens a confirmation popup (checkbox for private/creator destroy), then updates the store.
3556
+ * Bot chats skip the prompt and always delete for both sides.
3415
3557
  */
3416
3558
  deleteConversation(conversationId: string): Promise<boolean>;
3559
+ private performDeleteConversation;
3417
3560
  /**
3418
3561
  * Get reply count for a message
3419
3562
  * @param messageId - Message ID
@@ -3571,7 +3714,7 @@ declare class AXConversationService {
3571
3714
  */
3572
3715
  private validateMessageContent;
3573
3716
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationService, never>;
3574
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationService>;
3717
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
3575
3718
  }
3576
3719
 
3577
3720
  /**
@@ -3686,7 +3829,7 @@ declare class AXConversationErrorHandlerService {
3686
3829
  */
3687
3830
  private delay;
3688
3831
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationErrorHandlerService, never>;
3689
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationErrorHandlerService>;
3832
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
3690
3833
  }
3691
3834
 
3692
3835
  declare class AXConversationForwardMessageDialogComponent {
@@ -3821,8 +3964,17 @@ declare function resolveConversationTitleForViewer(conversation: AXConversation,
3821
3964
  * Does not mutate the source object.
3822
3965
  */
3823
3966
  declare function resolveConversationForViewer(conversation: AXConversation, currentUserId?: string): AXConversation;
3824
- /** Whether message reactions are enabled for a conversation. Defaults to `true` when omitted. */
3967
+ /**
3968
+ * Whether message reactions are enabled for a conversation.
3969
+ * `metadata.reactionsEnabled` wins when set; otherwise `bot` chats default to off.
3970
+ */
3825
3971
  declare function isConversationReactionsEnabled(conversation?: AXConversation | null): boolean;
3972
+ /**
3973
+ * How file attachments are shown in the composer.
3974
+ * `metadata.composerAttachmentPresentation` wins when set; otherwise `bot` chats use `banner`.
3975
+ */
3976
+ declare function resolveComposerAttachmentPresentation(conversation?: AXConversation | null): AXConversationComposerAttachmentPresentation;
3977
+ declare function isComposerAttachmentBannerEnabled(conversation?: AXConversation | null): boolean;
3826
3978
 
3827
3979
  /** Group and channel rooms share join/leave and creator-destroy rules. */
3828
3980
  declare function isGroupLikeConversation(conversationOrType: AXConversation | AXConversationType | undefined): boolean;
@@ -4331,7 +4483,7 @@ declare class AXConversationMessageListService {
4331
4483
  requestScrollToBottom(): void;
4332
4484
  private buildCountMap;
4333
4485
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageListService, never>;
4334
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationMessageListService>;
4486
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
4335
4487
  }
4336
4488
 
4337
4489
  declare class AXConversationMessageListComponent implements OnDestroy {
@@ -4346,6 +4498,7 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4346
4498
  private readonly platform;
4347
4499
  private readonly actionSheetService;
4348
4500
  private readonly ngZone;
4501
+ private readonly cdr;
4349
4502
  protected readonly config: Required<_acorex_components_conversation.AXConversationConfig>;
4350
4503
  /**
4351
4504
  * Background for the message list scroll area from config, or the built-in soft wash when unset/empty.
@@ -4359,6 +4512,7 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4359
4512
  /** Fallback when no conversation is active and no `ax-conversation-message-list-no-active` content is projected. */
4360
4513
  protected readonly noActiveFallbackComponent: typeof AXConversationMessageListNoActiveDefaultComponent;
4361
4514
  private readonly timeouts;
4515
+ private dateSeparatorFadeTimer;
4362
4516
  readonly reactionPickerTarget: _angular_core.WritableSignal<string>;
4363
4517
  readonly reactionPickerElement: _angular_core.WritableSignal<HTMLElement>;
4364
4518
  readonly reactionPickerPlacement: _angular_core.WritableSignal<AXPlacement>;
@@ -4373,6 +4527,18 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4373
4527
  readonly isAdaptiveWideLayout: _angular_core.WritableSignal<boolean>;
4374
4528
  /** While true, older history is being prepended — do not auto-scroll to the latest message. */
4375
4529
  private restoringScrollAfterPrepend;
4530
+ /**
4531
+ * Stick to the latest message across layout shifts (media decode, lazy outlets).
4532
+ * Cleared as soon as the user scrolls up — even within `scrollThreshold` —
4533
+ * otherwise ResizeObserver keeps yanking the feed back to the bottom.
4534
+ */
4535
+ private pinnedToBottom;
4536
+ /**
4537
+ * True while we assign `scrollTop`. Kept until the following animation frame
4538
+ * because some browsers dispatch `scroll` asynchronously after `scrollTop` writes.
4539
+ */
4540
+ private programmaticScroll;
4541
+ private programmaticScrollGen;
4376
4542
  private adaptiveLayoutResizeObserver?;
4377
4543
  private documentClickListener?;
4378
4544
  readonly availableReactions: _angular_core.WritableSignal<string[]>;
@@ -4395,6 +4561,21 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4395
4561
  readonly isGroupConversation: _angular_core.Signal<boolean>;
4396
4562
  /** Placeholder rows for the initial message list skeleton. */
4397
4563
  protected readonly loadingSkeletonItems: readonly [0, 1, 2, 3, 4, 5, 6, 7];
4564
+ /**
4565
+ * Conversation whose feed has already been pinned to the latest message.
4566
+ * Compared with the active id in `feedReady` so a chat switch hides the list
4567
+ * in the same render — before the effect that pins the new history.
4568
+ */
4569
+ private readonly pinnedConversationId;
4570
+ private feedRevealGeneration;
4571
+ private feedRevealRaf;
4572
+ /** False until this conversation is pinned to the bottom (never shows history from the top). */
4573
+ readonly feedReady: _angular_core.Signal<boolean>;
4574
+ /**
4575
+ * Keep the skeleton up until the feed is pinned. The real list stays
4576
+ * `visibility: hidden` underneath so bubbles never show through the cover.
4577
+ */
4578
+ readonly showOpenCover: _angular_core.Signal<boolean>;
4398
4579
  /** Whether the active conversation allows message reactions. */
4399
4580
  readonly reactionsEnabled: _angular_core.Signal<boolean>;
4400
4581
  /** Messages */
@@ -4418,6 +4599,15 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4418
4599
  * Setup intersection observer to mark messages as read when visible
4419
4600
  */
4420
4601
  private setupIntersectionObserver;
4602
+ /**
4603
+ * Keep the viewport stable when layout changes.
4604
+ * ResizeObserver runs after layout and before paint — apply scrollTop in the
4605
+ * callback (not rAF) so the browser never paints a jump.
4606
+ *
4607
+ * Near the bottom, pin to the latest message (media decode, lazy outlets).
4608
+ * Further up, only compensate rows that grew fully above the viewport.
4609
+ */
4610
+ private setupMediaScrollCompensation;
4421
4611
  /**
4422
4612
  * Mark message as read
4423
4613
  */
@@ -4455,14 +4645,32 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4455
4645
  /**
4456
4646
  * Keep the user's viewport on the same messages after older rows are inserted above.
4457
4647
  */
4458
- private restoreScrollPositionAfterPrepend;
4459
- /** Check if user is near bottom of scroll */
4460
- private isUserNearBottom;
4461
- /**
4462
- * After switching chats, the template may still show loading (no #messagesContainer).
4463
- * Poll with rAF until the feed exists, then scroll after double rAF so scrollHeight is stable.
4464
- */
4465
- private scrollToBottomWhenContainerReady;
4648
+ private applyPrependScrollRestore;
4649
+ private revealStuckDateSeparators;
4650
+ private syncDateSeparatorStuckState;
4651
+ private scheduleDateSeparatorFade;
4652
+ private clearDateSeparatorFadeTimer;
4653
+ /** Distance from the last pixel of the feed. */
4654
+ private distanceFromBottom;
4655
+ /** True when the viewport is at the latest message (not merely within `scrollThreshold`). */
4656
+ private isStuckToBottom;
4657
+ /**
4658
+ * Assign scrollTop without the listener treating it as a user scroll.
4659
+ * The flag stays set until the next frame so async `scroll` events are ignored.
4660
+ */
4661
+ private writeScrollTop;
4662
+ /** Pin the feed to the latest message before the next paint. */
4663
+ private pinFeedToBottom;
4664
+ /** Hide the feed and pin to the latest message before the first visible paint. */
4665
+ private beginFeedReveal;
4666
+ private cancelFeedReveal;
4667
+ /**
4668
+ * Pin to the latest message, then reveal. Two frames is enough — stick-to-bottom
4669
+ * holds later media growth. Waiting for loaders here left a blank gap after the skeleton.
4670
+ */
4671
+ private scheduleFeedPin;
4672
+ /** Start nearby lazy images so they decode while stick-to-bottom holds the viewport. */
4673
+ private primeOpenViewportMedia;
4466
4674
  /** Scroll to bottom */
4467
4675
  scrollToBottom(smooth?: boolean): void;
4468
4676
  /** Scroll to specific message */
@@ -4596,7 +4804,7 @@ declare class AXConversationSidebarService {
4596
4804
  */
4597
4805
  reloadConversations(): Promise<void>;
4598
4806
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationSidebarService, never>;
4599
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationSidebarService>;
4807
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
4600
4808
  }
4601
4809
 
4602
4810
  declare class AXConversationSidebarComponent implements OnDestroy {
@@ -4654,6 +4862,7 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
4654
4862
  private readonly translation;
4655
4863
  private readonly config;
4656
4864
  private readonly destroyRef;
4865
+ private readonly popupService;
4657
4866
  private searchDebounceTimer?;
4658
4867
  constructor();
4659
4868
  /**
@@ -4665,6 +4874,7 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
4665
4874
  readonly selectedUserIds: _angular_core.WritableSignal<string[]>;
4666
4875
  readonly groupTitle: _angular_core.WritableSignal<string>;
4667
4876
  readonly groupAvatar: _angular_core.WritableSignal<string>;
4877
+ readonly groupAvatarFileName: _angular_core.WritableSignal<string>;
4668
4878
  readonly searchQuery: _angular_core.WritableSignal<string>;
4669
4879
  readonly creating: _angular_core.WritableSignal<boolean>;
4670
4880
  /** For 2+ users: step 1 = pick users, step 2 = title + avatar. */
@@ -4681,11 +4891,19 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
4681
4891
  readonly usersListEmptyTpl: _angular_core.Signal<TemplateRef<unknown>>;
4682
4892
  readonly usersListLoadingTpl: _angular_core.Signal<TemplateRef<unknown>>;
4683
4893
  readonly usersList: _angular_core.Signal<AXListComponent>;
4894
+ private readonly groupNameInput;
4895
+ private readonly groupPhotoInput;
4896
+ readonly groupPhotoAriaLabel: _angular_core.Signal<string>;
4684
4897
  readonly usersListDataSource: AXDataSource<unknown>;
4685
4898
  onCancel(): void;
4686
4899
  onSelectedUsersChange(ids: string[]): void;
4687
4900
  onNextToGroupDetails(): void;
4688
4901
  onBackFromGroupDetails(): void;
4902
+ onPickGroupPhoto(): void;
4903
+ onClearGroupPhoto(): void;
4904
+ onEditGroupPhoto(): Promise<void>;
4905
+ onGroupPhotoSelected(event: Event): Promise<void>;
4906
+ private openGroupPhotoEditor;
4689
4907
  onSearchChange(value: string): void;
4690
4908
  isUserSelected(id: string): boolean;
4691
4909
  userFromItem(item: unknown): AXConversationParticipant | null;
@@ -4760,73 +4978,13 @@ declare class AXConversationAudioFileTypeProvider extends AXFileTypeInfoProvider
4760
4978
  [x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
4761
4979
  }>[]>;
4762
4980
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationAudioFileTypeProvider, never>;
4763
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationAudioFileTypeProvider>;
4981
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
4764
4982
  }
4765
4983
 
4766
4984
  declare function audioItemFromUpload(file: File, result: AXConversationUploaderResult, duration: number): AXConversationAudioMediaItem;
4767
4985
  declare function mergeAudioUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
4768
4986
  declare function applyAudioLocalPreview(payload: AXConversationMessagePayload, localUrl: string, mimeType?: string): AXConversationMessagePayload;
4769
4987
 
4770
- /**
4771
- * Shared upload state and helpers for composer media pickers.
4772
- */
4773
-
4774
- /** Stable id for `@for` tracking while upload state is patched immutably. */
4775
- declare function createPickerUploadItemId(): string;
4776
- interface AXConversationComposerPickerUploadItem {
4777
- id: string;
4778
- file: File;
4779
- preview?: string;
4780
- duration?: number;
4781
- uploadProgress?: number;
4782
- uploading?: boolean;
4783
- uploaded?: boolean;
4784
- uploadedUrl?: string;
4785
- mediaId?: string;
4786
- error?: string;
4787
- abortController?: AbortController;
4788
- }
4789
- declare function getPickerCancelUploadLabel(translation: AXTranslationService): string;
4790
- declare function abortPickerUploads(items: Iterable<{
4791
- abortController?: AbortController;
4792
- } | null | undefined>): void;
4793
- interface AXConversationCleanupPickerUploadsOptions {
4794
- retainUploaded?: boolean;
4795
- }
4796
- /** Upload finished; reference is {@link mediaId} and/or a non-empty session url. */
4797
- declare function isPickerItemReadyToSend(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId'>): boolean;
4798
- /** Build uploader result shape for {@link *ItemFromUpload} after picker upload. */
4799
- declare function pickerItemToUploadResult(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId' | 'file'>): {
4800
- url: string;
4801
- mediaId?: string;
4802
- mimeType: string;
4803
- size: number;
4804
- } | null;
4805
- declare function pickerItemToMediaReference(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId' | 'file'>): AXConversationUploaderReference | null;
4806
- declare function deleteUploadedPickerMedia(uploader: AXUploaderService, items: Iterable<AXConversationComposerPickerUploadItem | null | undefined>): Promise<void>;
4807
- declare function cleanupPickerUploads(uploader: AXUploaderService, items: Iterable<AXConversationComposerPickerUploadItem | null | undefined>, options?: AXConversationCleanupPickerUploadsOptions): void;
4808
- declare function revokePickerBlobPreviews(items: Iterable<{
4809
- preview?: string;
4810
- } | null | undefined>): void;
4811
- declare function isUploadAborted(error: unknown, signal?: AbortSignal): boolean;
4812
- declare function limitFilesToCapacity(files: File[], currentCount: number, maxFiles: number): File[];
4813
- declare function uploadPickerFile(uploader: AXUploaderService, conversationId: string, file: File, onProgress: (percent: number) => void, signal?: AbortSignal): Promise<{
4814
- url: string;
4815
- mediaId?: string;
4816
- mimeType: string;
4817
- size: number;
4818
- }>;
4819
- declare function notifyMaxFilesCapacityExceeded(toast: AXToastService, translation: AXTranslationService, maxFiles: number): void;
4820
- /** User-facing message for a file validation failure. */
4821
- declare function formatPickerValidationMessage(translation: AXTranslationService, file: File, error: AXValidationRuleResult | undefined): string;
4822
- /** Show a warning toast for each failed validation rule result. */
4823
- declare function notifyPickerValidationErrors(toast: AXToastService, translation: AXTranslationService, rejected: {
4824
- file: File;
4825
- errors: AXValidationRuleResult[];
4826
- }[]): void;
4827
- /** Close popup/action-sheet host or inline composer shell after send/cancel. */
4828
- declare function dismissComposerPickerHost(composerService: AXConversationComposerService, popupRef?: AXPopupRef | null, actionSheetRef?: AXActionSheetRef | null): void;
4829
-
4830
4988
  interface AXConversationAudioFile extends AXConversationComposerPickerUploadItem {
4831
4989
  duration?: number;
4832
4990
  dataUrl?: string;
@@ -4858,6 +5016,7 @@ declare class AXConversationAudioPickerComponent implements OnDestroy, AXConvers
4858
5016
  private catalogFileTypeDef?;
4859
5017
  caption: string;
4860
5018
  groupItems: boolean;
5019
+ sendAsDocuments: boolean;
4861
5020
  readonly allowMultiple: _angular_core.Signal<boolean>;
4862
5021
  constructor();
4863
5022
  activate(): Promise<void>;
@@ -4871,6 +5030,7 @@ declare class AXConversationAudioPickerComponent implements OnDestroy, AXConvers
4871
5030
  renameAudio(index: number): Promise<void>;
4872
5031
  replaceAttachment(index: number): Promise<void>;
4873
5032
  sendAudio(): Promise<void>;
5033
+ private sendAudioAsDocuments;
4874
5034
  canSend(): boolean;
4875
5035
  getUploadingLabel(progress: number): string;
4876
5036
  getCancelUploadLabel(): string;
@@ -4942,10 +5102,12 @@ declare class AXConversationFileFileTypeProvider extends AXFileTypeInfoProvider
4942
5102
  [x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
4943
5103
  }>[]>;
4944
5104
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationFileFileTypeProvider, never>;
4945
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationFileFileTypeProvider>;
5105
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
4946
5106
  }
4947
5107
 
4948
- declare function fileItemFromUpload(file: File, result: AXConversationUploaderResult): AXConversationFileMediaItem;
5108
+ declare function fileItemFromUpload(file: File, result: AXConversationUploaderResult, extras?: {
5109
+ duration?: number;
5110
+ }): AXConversationFileMediaItem;
4949
5111
  declare function mergeFileUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
4950
5112
  declare function applyFileLocalPreview(payload: AXConversationMessagePayload, localUrl: string, mimeType?: string): AXConversationMessagePayload;
4951
5113
 
@@ -4999,6 +5161,7 @@ declare class AXConversationFilePickerComponent implements OnDestroy, AXConversa
4999
5161
  cancel(): void;
5000
5162
  ngOnDestroy(): void;
5001
5163
  private dismissPicker;
5164
+ private revokePreview;
5002
5165
  getHeaderTitle(): string;
5003
5166
  truncateFileName(fileName: string): string;
5004
5167
  onAddMoreFiles(): void;
@@ -5025,7 +5188,7 @@ declare class AXConversationImageFileTypeProvider extends AXFileTypeInfoProvider
5025
5188
  [x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
5026
5189
  }>[]>;
5027
5190
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationImageFileTypeProvider, never>;
5028
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationImageFileTypeProvider>;
5191
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
5029
5192
  }
5030
5193
 
5031
5194
  type AXConversationMediaGalleryLayoutMode = 'single' | 'dual' | 'triple' | 'masonry';
@@ -5128,18 +5291,31 @@ declare class AXConversationPickerFooterComponent {
5128
5291
  }
5129
5292
 
5130
5293
  declare class AXConversationPickerHeaderComponent {
5294
+ private readonly translation;
5131
5295
  readonly title: _angular_core.InputSignal<string>;
5132
5296
  readonly showMenu: _angular_core.InputSignal<boolean>;
5133
5297
  readonly addMoreLabel: _angular_core.InputSignal<string>;
5298
+ readonly closeLabel: _angular_core.InputSignal<string>;
5134
5299
  readonly onClose: _angular_core.OutputEmitterRef<void>;
5135
5300
  readonly onAddMore: _angular_core.OutputEmitterRef<void>;
5136
5301
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationPickerHeaderComponent, never>;
5137
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationPickerHeaderComponent, "ax-conversation-picker-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "showMenu": { "alias": "showMenu"; "required": false; "isSignal": true; }; "addMoreLabel": { "alias": "addMoreLabel"; "required": false; "isSignal": true; }; }, { "onClose": "onClose"; "onAddMore": "onAddMore"; }, never, never, true, never>;
5302
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationPickerHeaderComponent, "ax-conversation-picker-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "showMenu": { "alias": "showMenu"; "required": false; "isSignal": true; }; "addMoreLabel": { "alias": "addMoreLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; }, { "onClose": "onClose"; "onAddMore": "onAddMore"; }, never, never, true, never>;
5138
5303
  }
5139
5304
 
5305
+ /** Explorer/OS paste often has an empty MIME type; catalogs reject that. */
5306
+ declare function normalizeConversationInboundFile(file: File): File;
5140
5307
  /** Extract OS-copied files from a paste event (e.g. Ctrl+V after copying a file in Explorer). */
5141
5308
  declare function filesFromClipboardEvent(event: ClipboardEvent): File[];
5142
5309
 
5310
+ interface AXConversationMediaDimensions {
5311
+ width: number;
5312
+ height: number;
5313
+ duration: number;
5314
+ }
5315
+ declare function probeImageDimensions(source: Blob | string): Promise<Pick<AXConversationMediaDimensions, 'width' | 'height'>>;
5316
+ declare function probeAudioDuration(source: Blob): Promise<number>;
5317
+ declare function probeVideoMedia(source: Blob): Promise<AXConversationMediaDimensions>;
5318
+
5143
5319
  declare function formatFileSize(bytes: number): string;
5144
5320
  declare function formatDuration(seconds: number): string;
5145
5321
 
@@ -5281,16 +5457,21 @@ declare class AXConversationVideoFileTypeProvider extends AXFileTypeInfoProvider
5281
5457
  [x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
5282
5458
  }>[]>;
5283
5459
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVideoFileTypeProvider, never>;
5284
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationVideoFileTypeProvider>;
5460
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
5285
5461
  }
5286
5462
 
5287
- declare function videoItemFromUpload(file: File, result: AXConversationUploaderResult, duration: number): AXConversationVideoMediaItem;
5463
+ declare function videoItemFromUpload(file: File, result: AXConversationUploaderResult, duration: number, size?: {
5464
+ width?: number;
5465
+ height?: number;
5466
+ }): Promise<AXConversationVideoMediaItem>;
5288
5467
  declare function mergeVideoUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
5289
5468
  declare function applyVideoLocalPreview(payload: AXConversationMessagePayload, localUrl: string, mimeType?: string): AXConversationMessagePayload;
5290
5469
 
5291
5470
  interface AXConversationVideoFile extends AXConversationComposerPickerUploadItem {
5292
5471
  preview?: string;
5293
5472
  duration?: number;
5473
+ width?: number;
5474
+ height?: number;
5294
5475
  }
5295
5476
  declare class AXConversationVideoPickerComponent implements OnDestroy, AXConversationComposerActionComponent {
5296
5477
  private uploadsDismissed;
@@ -5364,7 +5545,7 @@ declare class AXConversationVoiceFileTypeProvider extends AXFileTypeInfoProvider
5364
5545
  [x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
5365
5546
  }>[]>;
5366
5547
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVoiceFileTypeProvider, never>;
5367
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationVoiceFileTypeProvider>;
5548
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
5368
5549
  }
5369
5550
 
5370
5551
  declare function mergeVoiceUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
@@ -5388,32 +5569,71 @@ declare class AXConversationVoiceRecorderComponent implements AXConversationComp
5388
5569
  readonly recordingComplete: _angular_core.OutputEmitterRef<Blob>;
5389
5570
  readonly recordingCancelled: _angular_core.OutputEmitterRef<void>;
5390
5571
  readonly isRecording: _angular_core.WritableSignal<boolean>;
5572
+ readonly isPreview: _angular_core.WritableSignal<boolean>;
5573
+ readonly isPlayingPreview: _angular_core.WritableSignal<boolean>;
5391
5574
  readonly isUploading: _angular_core.WritableSignal<boolean>;
5392
5575
  readonly uploadProgress: _angular_core.WritableSignal<number>;
5393
5576
  readonly recordingDuration: _angular_core.WritableSignal<number>;
5577
+ readonly previewUrl: _angular_core.WritableSignal<string>;
5578
+ readonly livePeaks: _angular_core.WritableSignal<number[]>;
5579
+ readonly liveBarCount: _angular_core.WritableSignal<number>;
5394
5580
  private recordingStartTime;
5395
5581
  private timerInterval?;
5396
5582
  private mediaRecorder?;
5397
5583
  private audioChunks;
5398
5584
  private activeStream?;
5399
5585
  private cancelled;
5586
+ private sendAfterStop;
5587
+ private sendInFlight;
5588
+ private awaitingPreviewData;
5589
+ private previewBlob;
5400
5590
  private uploadAbortController?;
5591
+ private audioContext?;
5592
+ private analyser?;
5593
+ private timeDomain;
5594
+ private rafId;
5595
+ private lastLivePeakAt;
5596
+ private waveResizeObserver?;
5597
+ private readonly waveWrapRef;
5598
+ private readonly waveRef;
5401
5599
  readonly formattedTime: _angular_core.Signal<string>;
5402
- protected readonly waveBars: number[];
5600
+ readonly canSend: _angular_core.Signal<boolean>;
5601
+ readonly liveDisplayBars: _angular_core.Signal<{
5602
+ index: number;
5603
+ recorded: boolean;
5604
+ height: number;
5605
+ }[]>;
5606
+ readonly waveConfig: _angular_core.Signal<AXWaveConfig>;
5403
5607
  constructor();
5404
5608
  activate(): Promise<void>;
5405
5609
  startRecording(): Promise<void>;
5406
5610
  private dismissHost;
5407
- /** Stop recording and send */
5611
+ toggleStopOrContinue(): void;
5408
5612
  stopRecording(): void;
5613
+ sendRecording(): void;
5614
+ deleteRecording(): void;
5409
5615
  cancelRecording(): void;
5410
- /** Close the voice recorder */
5411
5616
  cancel(): void;
5617
+ togglePreview(): void;
5618
+ onWaveStatusChanged(event: AXAudioWaveChangeEvent): void;
5412
5619
  abortInProgressUploads(): void;
5413
- /** Clear timer */
5620
+ private pauseRecording;
5621
+ private continueRecording;
5622
+ private flushPreviewIfWaiting;
5623
+ private buildRecordingBlob;
5624
+ private discardActiveRecorder;
5625
+ private releaseStream;
5626
+ private startLiveWave;
5627
+ private observeWaveWidth;
5628
+ private updateBarCount;
5629
+ private tickLiveWave;
5630
+ private stopLiveWave;
5631
+ private enterPreview;
5632
+ private pausePreview;
5633
+ private clearPreview;
5634
+ private clearPreviewUrl;
5414
5635
  private clearTimer;
5415
5636
  getUploadingLabel(): string;
5416
- /** Send voice message */
5417
5637
  private sendVoiceMessage;
5418
5638
  private stopAndCleanup;
5419
5639
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVoiceRecorderComponent, never>;
@@ -5449,7 +5669,7 @@ declare function ensureConversationFileCatalogRegistered(registry: AXFileTypeReg
5449
5669
  declare class AXConversationComposerFileTypesProvider extends AXFileTypeInfoProvider {
5450
5670
  items(): Promise<AXFileType[]>;
5451
5671
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerFileTypesProvider, never>;
5452
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationComposerFileTypesProvider>;
5672
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
5453
5673
  }
5454
5674
 
5455
5675
  declare function mergeUploadResult(type: AXConversationMessageType, payload: AXConversationMessagePayload, result: AXUploadResult): Promise<AXConversationMessagePayload>;
@@ -5521,6 +5741,7 @@ declare const AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION: AXConversationInfoBarActi
5521
5741
  /**
5522
5742
  * Delete/Leave conversation action (smart action that adapts based on conversation type)
5523
5743
  * - Private: "Delete" - Deletes the conversation
5744
+ * - Bot: "Delete" - Deletes for both sides without a confirmation prompt
5524
5745
  * - Group/Channel: "Leave & Delete" - Leaves the group and removes it from list
5525
5746
  */
5526
5747
  declare const AX_CONVERSATION_INFO_BAR_DELETE_ACTION: AXConversationInfoBarAction;
@@ -5535,6 +5756,7 @@ declare class AXConversationAudioAttachmentComponent {
5535
5756
  private readonly platformId;
5536
5757
  protected readonly translation: AXTranslationService;
5537
5758
  readonly item: _angular_core.InputSignal<AXConversationAudioMediaItem>;
5759
+ readonly look: _angular_core.InputSignal<"file" | "player">;
5538
5760
  readonly playingChange: _angular_core.OutputEmitterRef<boolean>;
5539
5761
  readonly timeUpdate: _angular_core.OutputEmitterRef<number>;
5540
5762
  readonly durationChange: _angular_core.OutputEmitterRef<number>;
@@ -5554,9 +5776,12 @@ declare class AXConversationAudioAttachmentComponent {
5554
5776
  readonly effectiveDuration: _angular_core.Signal<number>;
5555
5777
  readonly sliderMax: _angular_core.Signal<number>;
5556
5778
  readonly currentTimeLabel: _angular_core.Signal<string>;
5779
+ readonly durationLabel: _angular_core.Signal<string>;
5557
5780
  readonly downloadName: _angular_core.Signal<string>;
5558
5781
  constructor();
5559
5782
  togglePlay(): void;
5783
+ onPlayClick(event: AXClickEvent): void;
5784
+ onNativePlayClick(event: Event): void;
5560
5785
  pause(): void;
5561
5786
  setPlaybackRate(rate: number): void;
5562
5787
  setMuted(muted: boolean): void;
@@ -5569,10 +5794,16 @@ declare class AXConversationAudioAttachmentComponent {
5569
5794
  onError(): void;
5570
5795
  onCoverError(): void;
5571
5796
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationAudioAttachmentComponent, never>;
5572
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationAudioAttachmentComponent, "ax-conversation-audio-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
5797
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationAudioAttachmentComponent, "ax-conversation-audio-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
5573
5798
  }
5574
5799
 
5800
+ type AXConversationFileVisualKind = 'image' | 'video' | 'audio' | 'file';
5801
+
5575
5802
  declare class AXConversationFileAttachmentComponent {
5803
+ private readonly platformId;
5804
+ private readonly document;
5805
+ protected readonly translation: AXTranslationService;
5806
+ private readonly thumbImage;
5576
5807
  readonly item: _angular_core.InputSignal<AXConversationFileMediaItem>;
5577
5808
  private readonly mediaReference;
5578
5809
  private readonly resolvedUrl;
@@ -5581,6 +5812,11 @@ declare class AXConversationFileAttachmentComponent {
5581
5812
  readonly fileSize: _angular_core.Signal<number>;
5582
5813
  readonly fileExtension: _angular_core.Signal<string>;
5583
5814
  readonly formattedSize: _angular_core.Signal<string>;
5815
+ readonly kind: _angular_core.Signal<AXConversationFileVisualKind>;
5816
+ readonly isMedia: _angular_core.Signal<boolean>;
5817
+ readonly thumbUrl: _angular_core.Signal<string>;
5818
+ readonly previewSrc: _angular_core.Signal<string>;
5819
+ openImage(event: Event): void;
5584
5820
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationFileAttachmentComponent, never>;
5585
5821
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationFileAttachmentComponent, "ax-conversation-file-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5586
5822
  }
@@ -5594,7 +5830,10 @@ declare class AXConversationImageAttachmentComponent {
5594
5830
  private readonly document;
5595
5831
  readonly item: _angular_core.InputSignal<AXConversationImageMediaItem>;
5596
5832
  readonly alt: _angular_core.InputSignal<string>;
5833
+ /** When false, skip aspect-ratio reservation (gallery cells already have a fixed size). */
5834
+ readonly reserveAspect: _angular_core.InputSignal<boolean>;
5597
5835
  readonly ready: _angular_core.WritableSignal<boolean>;
5836
+ readonly aspectRatio: _angular_core.Signal<string>;
5598
5837
  private readonly mediaReference;
5599
5838
  private readonly resolvedUrl;
5600
5839
  readonly displayUrl: _angular_core.Signal<string>;
@@ -5603,7 +5842,7 @@ declare class AXConversationImageAttachmentComponent {
5603
5842
  onImageError(): void;
5604
5843
  toggleFullscreen(event: AXClickEvent): void;
5605
5844
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationImageAttachmentComponent, never>;
5606
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationImageAttachmentComponent, "ax-conversation-image-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5845
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationImageAttachmentComponent, "ax-conversation-image-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "reserveAspect": { "alias": "reserveAspect"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5607
5846
  }
5608
5847
 
5609
5848
  interface AXConversationPlaybackBannerInputs {
@@ -5714,6 +5953,8 @@ declare function syncPlaybackInfoBarBanner(infoBar: AXConversationInfoBarService
5714
5953
 
5715
5954
  declare class AXConversationVideoAttachmentComponent {
5716
5955
  readonly item: _angular_core.InputSignal<AXConversationVideoMediaItem>;
5956
+ /** When false, skip aspect-ratio reservation (gallery cells already have a fixed size). */
5957
+ readonly reserveAspect: _angular_core.InputSignal<boolean>;
5717
5958
  readonly playingChange: _angular_core.OutputEmitterRef<boolean>;
5718
5959
  readonly timeUpdate: _angular_core.OutputEmitterRef<number>;
5719
5960
  readonly durationChange: _angular_core.OutputEmitterRef<number>;
@@ -5725,6 +5966,7 @@ declare class AXConversationVideoAttachmentComponent {
5725
5966
  readonly playbackUrl: _angular_core.Signal<string>;
5726
5967
  readonly duration: _angular_core.Signal<number>;
5727
5968
  readonly durationLabel: _angular_core.Signal<string>;
5969
+ readonly aspectRatio: _angular_core.Signal<string>;
5728
5970
  togglePlay(): void;
5729
5971
  pause(): void;
5730
5972
  onLoadedMetadata(): void;
@@ -5734,7 +5976,7 @@ declare class AXConversationVideoAttachmentComponent {
5734
5976
  onEnded(): void;
5735
5977
  onError(): void;
5736
5978
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVideoAttachmentComponent, never>;
5737
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationVideoAttachmentComponent, "ax-conversation-video-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
5979
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationVideoAttachmentComponent, "ax-conversation-video-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "reserveAspect": { "alias": "reserveAspect"; "required": false; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
5738
5980
  }
5739
5981
 
5740
5982
  declare class AXConversationAudioRendererComponent extends AXConversationMessageRendererCopyHostComponent {
@@ -5802,19 +6044,56 @@ declare class AXConversationFallbackRendererComponent implements AXConversationM
5802
6044
  declare class AXConversationFileRendererComponent extends AXConversationMessageRendererCopyHostComponent {
5803
6045
  private readonly fileTypes;
5804
6046
  private readonly translation;
6047
+ private readonly destroyRef;
6048
+ private readonly infoBarService;
6049
+ private readonly audioAttachments;
6050
+ private readonly _contentState;
6051
+ private readonly activeTrackIndex;
6052
+ private readonly isPlaying;
6053
+ private readonly currentTime;
6054
+ private readonly duration;
6055
+ readonly playbackSpeed: _angular_core.WritableSignal<number>;
6056
+ readonly isMuted: _angular_core.WritableSignal<boolean>;
6057
+ private lastBannerSyncAt;
6058
+ private readonly speeds;
6059
+ private readonly bannerTogglePlay;
6060
+ private readonly bannerClose;
6061
+ private readonly bannerCycleSpeed;
6062
+ private readonly bannerToggleMute;
5805
6063
  readonly message: _angular_core.InputSignal<AXConversationMessage>;
5806
6064
  readonly rendererState: _angular_core.Signal<{
5807
6065
  deliveryStatus: _acorex_components_conversation.AXConversationMessageStatus;
5808
- contentState: "ready";
6066
+ contentState: AXConversationMessageRendererContentState;
5809
6067
  }>;
5810
6068
  readonly payload: _angular_core.Signal<AXConversationFilePayload>;
5811
- readonly files: _angular_core.Signal<_acorex_components_conversation.AXConversationFileMediaItem[]>;
6069
+ readonly files: _angular_core.Signal<AXConversationFileMediaItem[]>;
5812
6070
  readonly caption: _angular_core.Signal<string>;
6071
+ readonly fileRows: _angular_core.Signal<{
6072
+ file: AXConversationFileMediaItem;
6073
+ isAudio: boolean;
6074
+ audio: _acorex_components_conversation.AXConversationAudioMediaItem;
6075
+ trackIndex: number;
6076
+ }[]>;
5813
6077
  copy(): Promise<string>;
6078
+ constructor();
6079
+ isAudioFile(file: AXConversationFileMediaItem): boolean;
6080
+ onPlayingChange(trackIndex: number, playing: boolean): void;
6081
+ onTimeUpdate(trackIndex: number, time: number): void;
6082
+ onDurationChange(trackIndex: number, duration: number): void;
6083
+ onPlaybackEnded(trackIndex: number): void;
6084
+ onPlaybackError(): void;
6085
+ togglePlay(): void;
6086
+ cyclePlaybackSpeed(): void;
6087
+ toggleMute(): void;
6088
+ private pauseOtherTracks;
6089
+ private pausePlayback;
6090
+ private applyPlaybackSettings;
6091
+ private syncInfoBarBanner;
5814
6092
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationFileRendererComponent, never>;
5815
6093
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationFileRendererComponent, "ax-conversation-file-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5816
6094
  }
5817
6095
 
6096
+ declare function fileItemAsAudioMedia(item: AXConversationFileMediaItem): AXConversationAudioMediaItem;
5818
6097
  declare function normalizeFilePayload(payload: AXConversationFilePayload): AXConversationFilePayload;
5819
6098
 
5820
6099
  declare class AXConversationImageRendererComponent extends AXConversationMessageRendererCopyHostComponent {
@@ -5844,6 +6123,12 @@ declare function resolveImageDisplayUrl(image: AXConversationImageMediaItem): st
5844
6123
 
5845
6124
  declare class AXConversationLocationRendererComponent extends AXConversationMessageRendererCopyHostComponent {
5846
6125
  private readonly _contentState;
6126
+ private readonly platformId;
6127
+ private readonly document;
6128
+ private readonly fullScreen;
6129
+ private readonly destroyRef;
6130
+ private readonly mapHost;
6131
+ private readonly map;
5847
6132
  protected readonly translation: AXTranslationService;
5848
6133
  readonly message: _angular_core.InputSignal<AXConversationMessage>;
5849
6134
  readonly rendererState: _angular_core.Signal<{
@@ -5865,6 +6150,14 @@ declare class AXConversationLocationRendererComponent extends AXConversationMess
5865
6150
  popupOpen: boolean;
5866
6151
  popupCloseButton: boolean;
5867
6152
  }[]>;
6153
+ readonly mapIsFullscreen: _angular_core.Signal<boolean>;
6154
+ readonly mapFullscreenLabel: _angular_core.Signal<string>;
6155
+ readonly mapFullscreenIconClass: _angular_core.Signal<"fa-light fa-compress" | "fa-light fa-expand">;
6156
+ constructor();
6157
+ openInMaps(event: AXClickEvent): void;
6158
+ toggleMapFullscreen(event: AXClickEvent): void;
6159
+ private exitMapFullscreen;
6160
+ protected scheduleMapResize(): void;
5868
6161
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationLocationRendererComponent, never>;
5869
6162
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationLocationRendererComponent, "ax-conversation-location-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5870
6163
  }
@@ -5882,6 +6175,7 @@ declare class AXConversationStickerRendererComponent implements AXConversationMe
5882
6175
  private readonly resolvedUrl;
5883
6176
  readonly stickerUrl: _angular_core.Signal<string>;
5884
6177
  readonly alt: _angular_core.Signal<string>;
6178
+ readonly aspectRatio: _angular_core.Signal<string>;
5885
6179
  constructor();
5886
6180
  onLoad(): void;
5887
6181
  onError(): void;
@@ -5913,6 +6207,10 @@ declare class AXConversationTextRendererComponent extends AXConversationMessageR
5913
6207
  }>;
5914
6208
  readonly searchQuery: _angular_core.Signal<string>;
5915
6209
  copy(): string;
6210
+ readonly jumboCount: _angular_core.Signal<number>;
6211
+ readonly isJumbo: _angular_core.Signal<boolean>;
6212
+ readonly jumboText: _angular_core.Signal<string>;
6213
+ readonly jumboGraphemes: _angular_core.Signal<string[]>;
5916
6214
  readonly formattedText: _angular_core.Signal<SafeHtml>;
5917
6215
  private linkify;
5918
6216
  private highlightSearch;
@@ -6077,6 +6375,7 @@ declare const AX_CONVERSATION_ITEM_DIVIDER: AXConversationItemAction;
6077
6375
  /**
6078
6376
  * Delete/Leave conversation action (smart action that adapts based on conversation type)
6079
6377
  * - Private: "Delete" - Deletes the conversation
6378
+ * - Bot: "Delete" - Deletes for both sides without a confirmation prompt
6080
6379
  * - Group/Channel: "Leave & Delete" - Leaves the group and removes it from list
6081
6380
  */
6082
6381
  declare const AX_CONVERSATION_ITEM_DELETE_ACTION: AXConversationItemAction;
@@ -6576,5 +6875,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
6576
6875
  */
6577
6876
  type AXConversationErrorCode = typeof AX_CONVERSATION_MESSAGE_ERRORS[keyof typeof AX_CONVERSATION_MESSAGE_ERRORS]['code'] | typeof AX_CONVERSATION_FILE_ERRORS[keyof typeof AX_CONVERSATION_FILE_ERRORS]['code'] | typeof AX_CONVERSATION_USER_ERRORS[keyof typeof AX_CONVERSATION_USER_ERRORS]['code'] | typeof AX_CONVERSATION_ERRORS[keyof typeof AX_CONVERSATION_ERRORS]['code'] | typeof AX_CONVERSATION_CONNECTION_ERRORS[keyof typeof AX_CONVERSATION_CONNECTION_ERRORS]['code'] | typeof AX_CONVERSATION_LOCATION_ERRORS[keyof typeof AX_CONVERSATION_LOCATION_ERRORS]['code'] | typeof AX_CONVERSATION_URL_ERRORS[keyof typeof AX_CONVERSATION_URL_ERRORS]['code'];
6578
6877
 
6579
- export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationDeleteDialogComponent, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerOptionsComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemFromUpload, filesFromClipboardEvent, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getActiveComposerPickerPasteHandler, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isConversationRoomCreator, isGenericPrivateConversationTitle, isGridMediaCategory, isGroupLikeConversation, isMessageDeliveryPending, isMessageListThemeBackground, isMessageVisibleAfterHistoryCutoff, isNonPersistableMediaUrl, isPickerItemReadyToSend, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickEarliestJoinedParticipant, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerComposerPickerPasteHandler, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, sortUsersForForward, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, usesDefaultMessageListWallpaper, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
6580
- export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDateSeparatorKind, AXConversationDeleteDialogMode, AXConversationDeleteDialogResult, AXConversationDeleteMessageCommand, AXConversationDeleteOptions, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationForwardUserSortEntry, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageClusterRole, AXConversationMessageDateGroup, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationOutletSkeleton, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPickerPasteHandler, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSidebarTabsOrientation, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
6878
+ export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationDeleteDialogComponent, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerOptionsComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_JUMBO_EMOJI_MAX, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, countLoneEmojis, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemAsAudioMedia, fileItemFromUpload, filesFromClipboardEvent, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getActiveComposerPickerPasteHandler, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerAttachmentBannerEnabled, isComposerTabEnabled, isConversationReactionsEnabled, isConversationRoomCreator, isGenericPrivateConversationTitle, isGridMediaCategory, isGroupLikeConversation, isJumboEmojiText, isJumboEmojiTextMessage, isMessageDeliveryPending, isMessageListThemeBackground, isMessageVisibleAfterHistoryCutoff, isNonPersistableMediaUrl, isPickerItemReadyToSend, isPlainChromeMessage, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, listTextGraphemes, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeConversationInboundFile, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickEarliestJoinedParticipant, pickerItemToMediaReference, pickerItemToUploadResult, probeAudioDuration, probeImageDimensions, probeVideoMedia, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerComposerPickerPasteHandler, reportMediaLoadError, resolveComposerAttachmentPresentation, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageChrome, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, sortUsersForForward, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, usesDefaultMessageListWallpaper, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
6879
+ export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerAttachmentPresentation, AXConversationComposerDraftAttachment, AXConversationComposerDraftAttachmentKind, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDateSeparatorKind, AXConversationDeleteDialogMode, AXConversationDeleteDialogResult, AXConversationDeleteMessageCommand, AXConversationDeleteOptions, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationForwardUserSortEntry, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaDimensions, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageChrome, AXConversationMessageClusterRole, AXConversationMessageDateGroup, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationOutletSkeleton, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPickerPasteHandler, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSidebarTabsOrientation, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };