@acorex/components 21.0.2-next.33 → 21.0.2-next.35

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 (339) hide show
  1. package/{types/acorex-components-accordion.d.ts → accordion/index.d.ts} +1 -0
  2. package/{types/acorex-components-button.d.ts → button/index.d.ts} +5 -11
  3. package/{types/acorex-components-button-group.d.ts → button-group/index.d.ts} +12 -20
  4. package/{types/acorex-components-calendar.d.ts → calendar/index.d.ts} +11 -4
  5. package/{types/acorex-components-check-box.d.ts → check-box/index.d.ts} +1 -1
  6. package/{types/acorex-components-chips.d.ts → chips/index.d.ts} +8 -3
  7. package/collapse/README.md +3 -0
  8. package/collapse/index.d.ts +174 -0
  9. package/{types/acorex-components-color-palette.d.ts → color-palette/index.d.ts} +0 -2
  10. package/{types/acorex-components-conversation2.d.ts → conversation2/index.d.ts} +667 -667
  11. package/{types/acorex-components-data-pager.d.ts → data-pager/index.d.ts} +6 -25
  12. package/{types/acorex-components-data-table.d.ts → data-table/index.d.ts} +270 -12
  13. package/{types/acorex-components-datetime-box.d.ts → datetime-box/index.d.ts} +65 -4
  14. package/drawer-legacy/README.md +3 -0
  15. package/drawer-legacy/index.d.ts +86 -0
  16. package/{types/acorex-components-dropdown-button.d.ts → dropdown-button/index.d.ts} +2 -4
  17. package/fesm2022/acorex-components-accordion.mjs +37 -32
  18. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  19. package/fesm2022/acorex-components-action-sheet.mjs +32 -32
  20. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  21. package/fesm2022/acorex-components-alert.mjs +21 -21
  22. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  23. package/fesm2022/acorex-components-aspect-ratio.mjs +6 -6
  24. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  25. package/fesm2022/acorex-components-audio-wave.mjs +14 -15
  26. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  27. package/fesm2022/acorex-components-autocomplete.mjs +16 -16
  28. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  29. package/fesm2022/acorex-components-avatar.mjs +17 -17
  30. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  31. package/fesm2022/acorex-components-badge.mjs +11 -11
  32. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  33. package/fesm2022/acorex-components-bottom-navigation.mjs +15 -15
  34. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  35. package/fesm2022/acorex-components-breadcrumbs.mjs +14 -14
  36. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  37. package/fesm2022/acorex-components-button-group.mjs +28 -63
  38. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  39. package/fesm2022/acorex-components-button.mjs +40 -41
  40. package/fesm2022/acorex-components-button.mjs.map +1 -1
  41. package/fesm2022/acorex-components-calendar.mjs +59 -41
  42. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  43. package/fesm2022/acorex-components-check-box.mjs +12 -12
  44. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  45. package/fesm2022/acorex-components-chips.mjs +15 -13
  46. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  47. package/fesm2022/acorex-components-circular-progress.mjs +16 -18
  48. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  49. package/fesm2022/acorex-components-code-editor.mjs +30 -30
  50. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  51. package/fesm2022/acorex-components-collapse.mjs +366 -0
  52. package/fesm2022/acorex-components-collapse.mjs.map +1 -0
  53. package/fesm2022/acorex-components-color-box.mjs +16 -16
  54. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  55. package/fesm2022/acorex-components-color-palette.mjs +44 -85
  56. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  57. package/fesm2022/acorex-components-command.mjs +20 -20
  58. package/fesm2022/acorex-components-command.mjs.map +1 -1
  59. package/fesm2022/acorex-components-comment.mjs +37 -37
  60. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  61. package/fesm2022/acorex-components-conversation.mjs +119 -119
  62. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  63. package/fesm2022/acorex-components-conversation2.mjs +708 -720
  64. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  65. package/fesm2022/acorex-components-cron-job.mjs +60 -60
  66. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  67. package/fesm2022/acorex-components-data-list.mjs +34 -34
  68. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  69. package/fesm2022/acorex-components-data-pager.mjs +85 -94
  70. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  71. package/fesm2022/acorex-components-data-table.mjs +522 -75
  72. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  73. package/fesm2022/acorex-components-datetime-box.mjs +162 -27
  74. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  75. package/fesm2022/acorex-components-datetime-input.mjs +24 -24
  76. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  77. package/fesm2022/acorex-components-datetime-picker.mjs +30 -30
  78. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  79. package/fesm2022/acorex-components-decorators.mjs +49 -56
  80. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  81. package/fesm2022/acorex-components-dialog.mjs +20 -27
  82. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  83. package/fesm2022/acorex-components-drawer-legacy.mjs +218 -0
  84. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -0
  85. package/fesm2022/acorex-components-drawer.mjs +26 -25
  86. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  87. package/fesm2022/acorex-components-dropdown-button.mjs +11 -19
  88. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  89. package/fesm2022/acorex-components-dropdown.mjs +22 -22
  90. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  91. package/fesm2022/acorex-components-editor.mjs +15 -15
  92. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  93. package/fesm2022/acorex-components-fab.mjs +18 -18
  94. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  95. package/fesm2022/acorex-components-file-explorer.mjs +307 -0
  96. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -0
  97. package/fesm2022/acorex-components-flow-chart.mjs +63 -80
  98. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  99. package/fesm2022/acorex-components-form.mjs +39 -47
  100. package/fesm2022/acorex-components-form.mjs.map +1 -1
  101. package/fesm2022/acorex-components-grid-layout-builder.mjs +19 -18
  102. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  103. package/fesm2022/acorex-components-image-editor.mjs +93 -93
  104. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  105. package/fesm2022/acorex-components-image.mjs +12 -12
  106. package/fesm2022/acorex-components-image.mjs.map +1 -1
  107. package/fesm2022/acorex-components-json-viewer.mjs +13 -13
  108. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  109. package/fesm2022/acorex-components-kanban.mjs +26 -28
  110. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  111. package/fesm2022/acorex-components-kbd.mjs +17 -17
  112. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  113. package/fesm2022/acorex-components-label.mjs +9 -9
  114. package/fesm2022/acorex-components-label.mjs.map +1 -1
  115. package/fesm2022/acorex-components-list.mjs +16 -16
  116. package/fesm2022/acorex-components-list.mjs.map +1 -1
  117. package/fesm2022/acorex-components-loading-dialog.mjs +20 -20
  118. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  119. package/fesm2022/acorex-components-loading.mjs +23 -23
  120. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  121. package/fesm2022/acorex-components-map.mjs +47 -47
  122. package/fesm2022/acorex-components-map.mjs.map +1 -1
  123. package/fesm2022/acorex-components-media-viewer.mjs +85 -85
  124. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  125. package/fesm2022/acorex-components-menu.mjs +49 -49
  126. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  127. package/fesm2022/{acorex-components-modal-acorex-components-modal-BGSCJ1Ux.mjs → acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs} +29 -29
  128. package/fesm2022/acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs.map +1 -0
  129. package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs +212 -0
  130. package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs.map +1 -0
  131. package/fesm2022/acorex-components-modal.mjs +1 -1
  132. package/fesm2022/acorex-components-navbar.mjs +9 -9
  133. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  134. package/fesm2022/acorex-components-notification.mjs +29 -29
  135. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  136. package/fesm2022/acorex-components-number-box-legacy.mjs +430 -0
  137. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -0
  138. package/fesm2022/acorex-components-number-box.mjs +21 -21
  139. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  140. package/fesm2022/acorex-components-otp.mjs +13 -13
  141. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  142. package/fesm2022/acorex-components-page.mjs +10 -10
  143. package/fesm2022/acorex-components-page.mjs.map +1 -1
  144. package/fesm2022/acorex-components-paint.mjs +65 -60
  145. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  146. package/fesm2022/acorex-components-password-box.mjs +39 -31
  147. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  148. package/fesm2022/acorex-components-pdf-reader.mjs +10 -10
  149. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  150. package/fesm2022/acorex-components-phone-box.mjs +20 -20
  151. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  152. package/fesm2022/acorex-components-picker.mjs +33 -33
  153. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  154. package/fesm2022/acorex-components-popover.mjs +11 -11
  155. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  156. package/fesm2022/acorex-components-popup.mjs +25 -25
  157. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  158. package/fesm2022/acorex-components-progress-bar.mjs +9 -11
  159. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  160. package/fesm2022/acorex-components-qrcode.mjs +21 -38
  161. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  162. package/fesm2022/acorex-components-query-builder.mjs +15 -16
  163. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  164. package/fesm2022/acorex-components-radio.mjs +9 -10
  165. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  166. package/fesm2022/acorex-components-rail-navigation.mjs +51 -53
  167. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  168. package/fesm2022/acorex-components-range-slider.mjs +36 -36
  169. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  170. package/fesm2022/acorex-components-rate-picker.mjs +42 -27
  171. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  172. package/fesm2022/acorex-components-rest-api-generator.mjs +39 -39
  173. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  174. package/fesm2022/acorex-components-result.mjs +8 -8
  175. package/fesm2022/acorex-components-result.mjs.map +1 -1
  176. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  177. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  178. package/fesm2022/acorex-components-rrule.mjs +38 -38
  179. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  180. package/fesm2022/acorex-components-scheduler-picker.mjs +235 -229
  181. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  182. package/fesm2022/acorex-components-scheduler.mjs +406 -334
  183. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  184. package/fesm2022/acorex-components-scss.mjs +22 -0
  185. package/fesm2022/acorex-components-scss.mjs.map +1 -0
  186. package/fesm2022/acorex-components-search-box.mjs +13 -19
  187. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  188. package/fesm2022/acorex-components-select-box.mjs +27 -29
  189. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  190. package/fesm2022/acorex-components-selection-list-2.mjs +15 -15
  191. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  192. package/fesm2022/acorex-components-selection-list.mjs +12 -12
  193. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  194. package/fesm2022/acorex-components-side-menu.mjs +44 -44
  195. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  196. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  197. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  198. package/fesm2022/acorex-components-slider.mjs +13 -13
  199. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  200. package/fesm2022/acorex-components-sliding-item.mjs +28 -28
  201. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  202. package/fesm2022/acorex-components-step-wizard.mjs +41 -41
  203. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  204. package/fesm2022/acorex-components-switch.mjs +14 -14
  205. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  206. package/fesm2022/acorex-components-tabs.mjs +22 -22
  207. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  208. package/fesm2022/acorex-components-tag-box.mjs +20 -20
  209. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  210. package/fesm2022/acorex-components-tag.mjs +10 -10
  211. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  212. package/fesm2022/acorex-components-text-area.mjs +9 -9
  213. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  214. package/fesm2022/acorex-components-text-box.mjs +14 -14
  215. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  216. package/fesm2022/acorex-components-time-duration.mjs +31 -29
  217. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  218. package/fesm2022/acorex-components-time-line.mjs +21 -21
  219. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  220. package/fesm2022/acorex-components-toast.mjs +27 -27
  221. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  222. package/fesm2022/acorex-components-toolbar.mjs +14 -14
  223. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  224. package/fesm2022/acorex-components-tooltip.mjs +17 -17
  225. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  226. package/fesm2022/acorex-components-tree-view-legacy.mjs +511 -0
  227. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -0
  228. package/fesm2022/acorex-components-tree-view.mjs +57 -57
  229. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  230. package/fesm2022/acorex-components-uploader.mjs +18 -18
  231. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  232. package/fesm2022/acorex-components-video-player.mjs +10 -10
  233. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  234. package/fesm2022/acorex-components-wysiwyg.mjs +58 -58
  235. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  236. package/fesm2022/acorex-components.mjs.map +1 -1
  237. package/file-explorer/README.md +3 -0
  238. package/file-explorer/index.d.ts +103 -0
  239. package/{types/acorex-components-flow-chart.d.ts → flow-chart/index.d.ts} +0 -4
  240. package/{types/acorex-components-form.d.ts → form/index.d.ts} +24 -24
  241. package/{types/acorex-components-grid-layout-builder.d.ts → grid-layout-builder/index.d.ts} +1 -0
  242. package/{types/acorex-components-loading.d.ts → loading/index.d.ts} +1 -1
  243. package/{types/acorex-components-menu.d.ts → menu/index.d.ts} +6 -6
  244. package/number-box-legacy/README.md +3 -0
  245. package/number-box-legacy/index.d.ts +191 -0
  246. package/package.json +138 -115
  247. package/{types/acorex-components-paint.d.ts → paint/index.d.ts} +6 -1
  248. package/{types/acorex-components-qrcode.d.ts → qrcode/index.d.ts} +0 -1
  249. package/{types/acorex-components-radio.d.ts → radio/index.d.ts} +1 -1
  250. package/{types/acorex-components-rate-picker.d.ts → rate-picker/index.d.ts} +15 -5
  251. package/{types/acorex-components-scheduler.d.ts → scheduler/index.d.ts} +20 -2
  252. package/{types/acorex-components-scheduler-picker.d.ts → scheduler-picker/index.d.ts} +81 -82
  253. package/scss/README.md +3 -0
  254. package/scss/index.d.ts +10 -0
  255. package/{types/acorex-components-select-box.d.ts → select-box/index.d.ts} +1 -2
  256. package/{types/acorex-components-slider.d.ts → slider/index.d.ts} +2 -2
  257. package/{types/acorex-components-tabs.d.ts → tabs/index.d.ts} +1 -1
  258. package/{types/acorex-components-tag.d.ts → tag/index.d.ts} +3 -3
  259. package/tree-view-legacy/README.md +3 -0
  260. package/tree-view-legacy/index.d.ts +184 -0
  261. package/fesm2022/acorex-components-modal-acorex-components-modal-BGSCJ1Ux.mjs.map +0 -1
  262. package/fesm2022/acorex-components-modal-modal-content.component-CEdB5dcg.mjs +0 -214
  263. package/fesm2022/acorex-components-modal-modal-content.component-CEdB5dcg.mjs.map +0 -1
  264. package/{types/acorex-components-action-sheet.d.ts → action-sheet/index.d.ts} +0 -0
  265. package/{types/acorex-components-alert.d.ts → alert/index.d.ts} +0 -0
  266. package/{types/acorex-components-aspect-ratio.d.ts → aspect-ratio/index.d.ts} +0 -0
  267. package/{types/acorex-components-audio-wave.d.ts → audio-wave/index.d.ts} +0 -0
  268. package/{types/acorex-components-autocomplete.d.ts → autocomplete/index.d.ts} +0 -0
  269. package/{types/acorex-components-avatar.d.ts → avatar/index.d.ts} +0 -0
  270. package/{types/acorex-components-badge.d.ts → badge/index.d.ts} +0 -0
  271. package/{types/acorex-components-bottom-navigation.d.ts → bottom-navigation/index.d.ts} +0 -0
  272. package/{types/acorex-components-breadcrumbs.d.ts → breadcrumbs/index.d.ts} +0 -0
  273. package/{types/acorex-components-circular-progress.d.ts → circular-progress/index.d.ts} +0 -0
  274. package/{types/acorex-components-code-editor.d.ts → code-editor/index.d.ts} +0 -0
  275. package/{types/acorex-components-color-box.d.ts → color-box/index.d.ts} +0 -0
  276. package/{types/acorex-components-command.d.ts → command/index.d.ts} +0 -0
  277. package/{types/acorex-components-comment.d.ts → comment/index.d.ts} +0 -0
  278. package/{types/acorex-components-conversation.d.ts → conversation/index.d.ts} +0 -0
  279. package/{types/acorex-components-cron-job.d.ts → cron-job/index.d.ts} +0 -0
  280. package/{types/acorex-components-data-list.d.ts → data-list/index.d.ts} +0 -0
  281. package/{types/acorex-components-datetime-input.d.ts → datetime-input/index.d.ts} +0 -0
  282. package/{types/acorex-components-datetime-picker.d.ts → datetime-picker/index.d.ts} +0 -0
  283. package/{types/acorex-components-decorators.d.ts → decorators/index.d.ts} +0 -0
  284. package/{types/acorex-components-dialog.d.ts → dialog/index.d.ts} +0 -0
  285. package/{types/acorex-components-drawer.d.ts → drawer/index.d.ts} +0 -0
  286. package/{types/acorex-components-dropdown.d.ts → dropdown/index.d.ts} +0 -0
  287. package/{types/acorex-components-editor.d.ts → editor/index.d.ts} +0 -0
  288. package/{types/acorex-components-fab.d.ts → fab/index.d.ts} +0 -0
  289. package/{types/acorex-components-image.d.ts → image/index.d.ts} +0 -0
  290. package/{types/acorex-components-image-editor.d.ts → image-editor/index.d.ts} +0 -0
  291. package/{types/acorex-components.d.ts → index.d.ts} +0 -0
  292. package/{types/acorex-components-json-viewer.d.ts → json-viewer/index.d.ts} +0 -0
  293. package/{types/acorex-components-kanban.d.ts → kanban/index.d.ts} +0 -0
  294. package/{types/acorex-components-kbd.d.ts → kbd/index.d.ts} +0 -0
  295. package/{types/acorex-components-label.d.ts → label/index.d.ts} +0 -0
  296. package/{types/acorex-components-list.d.ts → list/index.d.ts} +0 -0
  297. package/{types/acorex-components-loading-dialog.d.ts → loading-dialog/index.d.ts} +0 -0
  298. package/{types/acorex-components-map.d.ts → map/index.d.ts} +0 -0
  299. package/{types/acorex-components-media-viewer.d.ts → media-viewer/index.d.ts} +0 -0
  300. package/{types/acorex-components-modal.d.ts → modal/index.d.ts} +0 -0
  301. package/{types/acorex-components-navbar.d.ts → navbar/index.d.ts} +0 -0
  302. package/{types/acorex-components-notification.d.ts → notification/index.d.ts} +0 -0
  303. package/{types/acorex-components-number-box.d.ts → number-box/index.d.ts} +0 -0
  304. package/{types/acorex-components-otp.d.ts → otp/index.d.ts} +0 -0
  305. package/{types/acorex-components-page.d.ts → page/index.d.ts} +0 -0
  306. package/{types/acorex-components-password-box.d.ts → password-box/index.d.ts} +0 -0
  307. package/{types/acorex-components-pdf-reader.d.ts → pdf-reader/index.d.ts} +0 -0
  308. package/{types/acorex-components-phone-box.d.ts → phone-box/index.d.ts} +0 -0
  309. package/{types/acorex-components-picker.d.ts → picker/index.d.ts} +0 -0
  310. package/{types/acorex-components-popover.d.ts → popover/index.d.ts} +0 -0
  311. package/{types/acorex-components-popup.d.ts → popup/index.d.ts} +0 -0
  312. package/{types/acorex-components-progress-bar.d.ts → progress-bar/index.d.ts} +0 -0
  313. package/{types/acorex-components-query-builder.d.ts → query-builder/index.d.ts} +1 -1
  314. /package/{types/acorex-components-rail-navigation.d.ts → rail-navigation/index.d.ts} +0 -0
  315. /package/{types/acorex-components-range-slider.d.ts → range-slider/index.d.ts} +0 -0
  316. /package/{types/acorex-components-rest-api-generator.d.ts → rest-api-generator/index.d.ts} +0 -0
  317. /package/{types/acorex-components-result.d.ts → result/index.d.ts} +0 -0
  318. /package/{types/acorex-components-routing-progress.d.ts → routing-progress/index.d.ts} +0 -0
  319. /package/{types/acorex-components-rrule.d.ts → rrule/index.d.ts} +0 -0
  320. /package/{types/acorex-components-search-box.d.ts → search-box/index.d.ts} +0 -0
  321. /package/{types/acorex-components-selection-list.d.ts → selection-list/index.d.ts} +0 -0
  322. /package/{types/acorex-components-selection-list-2.d.ts → selection-list-2/index.d.ts} +0 -0
  323. /package/{types/acorex-components-side-menu.d.ts → side-menu/index.d.ts} +0 -0
  324. /package/{types/acorex-components-skeleton.d.ts → skeleton/index.d.ts} +0 -0
  325. /package/{types/acorex-components-sliding-item.d.ts → sliding-item/index.d.ts} +0 -0
  326. /package/{types/acorex-components-step-wizard.d.ts → step-wizard/index.d.ts} +0 -0
  327. /package/{types/acorex-components-switch.d.ts → switch/index.d.ts} +0 -0
  328. /package/{types/acorex-components-tag-box.d.ts → tag-box/index.d.ts} +0 -0
  329. /package/{types/acorex-components-text-area.d.ts → text-area/index.d.ts} +0 -0
  330. /package/{types/acorex-components-text-box.d.ts → text-box/index.d.ts} +0 -0
  331. /package/{types/acorex-components-time-duration.d.ts → time-duration/index.d.ts} +0 -0
  332. /package/{types/acorex-components-time-line.d.ts → time-line/index.d.ts} +0 -0
  333. /package/{types/acorex-components-toast.d.ts → toast/index.d.ts} +0 -0
  334. /package/{types/acorex-components-toolbar.d.ts → toolbar/index.d.ts} +0 -0
  335. /package/{types/acorex-components-tooltip.d.ts → tooltip/index.d.ts} +0 -0
  336. /package/{types/acorex-components-tree-view.d.ts → tree-view/index.d.ts} +0 -0
  337. /package/{types/acorex-components-uploader.d.ts → uploader/index.d.ts} +0 -0
  338. /package/{types/acorex-components-video-player.d.ts → video-player/index.d.ts} +0 -0
  339. /package/{types/acorex-components-wysiwyg.d.ts → wysiwyg/index.d.ts} +0 -0
@@ -1,14 +1,14 @@
1
1
  import * as _acorex_components_conversation2 from '@acorex/components/conversation2';
2
2
  import * as _angular_core from '@angular/core';
3
- import { OnDestroy, ViewContainerRef, Type, InputSignal, WritableSignal, Signal, Provider, OnInit, EventEmitter, TemplateRef, InjectionToken, ModuleWithProviders } from '@angular/core';
3
+ import { OnDestroy, ViewContainerRef, Type, InputSignal, WritableSignal, Signal, Provider, InjectionToken, OnInit, EventEmitter, TemplateRef, ModuleWithProviders } from '@angular/core';
4
4
  import { AXComponentCloseEvent, AXHtmlEvent, AXDataSource, AXClosableComponent } from '@acorex/cdk/common';
5
+ import { AXFileUploadOptions, AXUploadResult, AXUploadReference, AXUploaderService, AXUploaderFileChangeEvent } from '@acorex/cdk/uploader';
5
6
  import * as _acorex_components_popup from '@acorex/components/popup';
6
7
  import { AXPopupService, AXPopupRef } from '@acorex/components/popup';
7
- import { AXFileUploadOptions, AXUploadResult, AXUploadReference, AXUploaderService, AXUploaderFileChangeEvent } from '@acorex/cdk/uploader';
8
- import { AXPopoverComponent } from '@acorex/components/popover';
9
- import { AXListComponent } from '@acorex/components/list';
10
8
  import * as rxjs from 'rxjs';
11
9
  import { Observable, BehaviorSubject, Subject } from 'rxjs';
10
+ import { AXPopoverComponent } from '@acorex/components/popover';
11
+ import { AXListComponent } from '@acorex/components/list';
12
12
  import { AXDialogService } from '@acorex/components/dialog';
13
13
  import { AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
14
14
  import { AXBasePageComponent } from '@acorex/components/page';
@@ -1295,6 +1295,106 @@ declare class AXMessageActionRegistry {
1295
1295
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMessageActionRegistry>;
1296
1296
  }
1297
1297
 
1298
+ /**
1299
+ * Active component state in composer
1300
+ */
1301
+ interface AXComposerActiveComponent {
1302
+ /** Action that triggered this component */
1303
+ action: AXComposerAction;
1304
+ /** Component to render */
1305
+ component: Type<unknown>;
1306
+ /** Component inputs */
1307
+ inputs?: Record<string, unknown>;
1308
+ }
1309
+ declare class AXComposerService {
1310
+ private readonly conversationService;
1311
+ private readonly translation;
1312
+ private get registry();
1313
+ private readonly _replyMessage;
1314
+ private readonly _editMessage;
1315
+ readonly replyMessage: _angular_core.Signal<AXMessage>;
1316
+ readonly editMessage: _angular_core.Signal<AXMessage>;
1317
+ readonly activeConversation: _angular_core.Signal<AXConversation>;
1318
+ readonly activeMessages: _angular_core.Signal<AXMessage[]>;
1319
+ /** Active component being shown in composer (full-width mode) */
1320
+ private readonly _activeComponent;
1321
+ readonly activeComponent: _angular_core.Signal<AXComposerActiveComponent>;
1322
+ /** Draft text */
1323
+ readonly draftText: _angular_core.WritableSignal<string>;
1324
+ /** Attachments */
1325
+ readonly attachments: _angular_core.WritableSignal<File[]>;
1326
+ /** Show typing indicator */
1327
+ readonly showTypingIndicator: _angular_core.WritableSignal<boolean>;
1328
+ /** Incremented to request focus on the composer text area (handled by AXComposerComponent). */
1329
+ private readonly _focusRequest;
1330
+ readonly focusRequest: _angular_core.Signal<number>;
1331
+ /** Input placeholder */
1332
+ readonly placeholder: _angular_core.Signal<string>;
1333
+ /** Number of input rows */
1334
+ readonly inputRows: _angular_core.Signal<number>;
1335
+ /** Can send message */
1336
+ readonly canSend: _angular_core.Signal<boolean>;
1337
+ /** Composer action context */
1338
+ readonly actionContext: _angular_core.Signal<AXComposerActionContext>;
1339
+ /** Left actions from registry */
1340
+ readonly leftActions: _angular_core.Signal<AXComposerAction[]>;
1341
+ /** Right actions from registry */
1342
+ readonly rightActions: _angular_core.Signal<AXComposerAction[]>;
1343
+ /** Left inline actions (location = 'inline' or undefined) */
1344
+ readonly leftInlineActions: _angular_core.Signal<AXComposerAction[]>;
1345
+ /** Left menu actions (location = 'menu') */
1346
+ readonly leftMenuActions: _angular_core.Signal<AXComposerAction[]>;
1347
+ /** Right inline actions (location = 'inline' or undefined) */
1348
+ readonly rightInlineActions: _angular_core.Signal<AXComposerAction[]>;
1349
+ /** Right menu actions (location = 'menu') */
1350
+ readonly rightMenuActions: _angular_core.Signal<AXComposerAction[]>;
1351
+ startReply(message: AXMessage): void;
1352
+ startEdit(message: AXMessage): void;
1353
+ /** Focus the composer text area when the composer component is mounted. */
1354
+ focusComposer(): void;
1355
+ clear(): void;
1356
+ /**
1357
+ * Persist draft for the previous conversation and reset composer UI state when switching conversations.
1358
+ */
1359
+ onConversationChanged(previousConversationId: string | null, currentConversationId: string | null): void;
1360
+ sendTypingIndicator(conversationId: string): Promise<void>;
1361
+ sendMessage(command: AXSendMessageCommand, options?: AXSendMessageOptions): Promise<void>;
1362
+ /**
1363
+ * Show a component in the composer (full-width mode)
1364
+ */
1365
+ showComponent(action: AXComposerAction, inputs?: Record<string, unknown>): void;
1366
+ /**
1367
+ * Hide the active component
1368
+ */
1369
+ hideComponent(): void;
1370
+ /**
1371
+ * Toggle component visibility
1372
+ */
1373
+ toggleComponent(action: AXComposerAction, inputs?: Record<string, unknown>): void;
1374
+ /**
1375
+ * Get actions for the active conversation
1376
+ */
1377
+ getActionsForPosition(position: 'left' | 'right', context: AXComposerActionContext): AXComposerAction[];
1378
+ /**
1379
+ * Execute an action
1380
+ */
1381
+ executeAction(actionId: string, context: AXComposerActionContext): Promise<void>;
1382
+ /**
1383
+ * Save draft to localStorage
1384
+ */
1385
+ saveDraft(conversationId: string, text: string): void;
1386
+ /**
1387
+ * Load draft from localStorage
1388
+ */
1389
+ loadDraft(conversationId: string): string;
1390
+ /**
1391
+ * Clear draft from localStorage
1392
+ */
1393
+ clearDraft(conversationId: string): void;
1394
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXComposerService, never>;
1395
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXComposerService>;
1396
+ }
1397
+
1298
1398
  declare class AXComposerComponent implements OnDestroy {
1299
1399
  #private;
1300
1400
  private readonly conversationService;
@@ -1325,10 +1425,10 @@ declare class AXComposerComponent implements OnDestroy {
1325
1425
  /** Voice clicked event */
1326
1426
  readonly voiceClick: _angular_core.OutputEmitterRef<void>;
1327
1427
  /** Active conversation */
1328
- readonly activeConversation: _angular_core.Signal<_acorex_components_conversation2.AXConversation>;
1428
+ readonly activeConversation: _angular_core.Signal<AXConversation>;
1329
1429
  readonly activeMessages: _angular_core.Signal<AXMessage[]>;
1330
1430
  /** Active component from service */
1331
- readonly activeComponent: _angular_core.Signal<_acorex_components_conversation2.AXComposerActiveComponent>;
1431
+ readonly activeComponent: _angular_core.Signal<AXComposerActiveComponent>;
1332
1432
  /** Emoji popover state */
1333
1433
  private readonly emojiPopoverRef;
1334
1434
  readonly emojiPopoverTarget: _angular_core.WritableSignal<HTMLElement>;
@@ -1430,336 +1530,77 @@ declare class AXComposerComponent implements OnDestroy {
1430
1530
  }
1431
1531
 
1432
1532
  /**
1433
- * Active component state in composer
1533
+ * Conversation Configuration Interface
1534
+ * Centralized configuration values to avoid magic numbers
1434
1535
  */
1435
- interface AXComposerActiveComponent {
1436
- /** Action that triggered this component */
1437
- action: AXComposerAction;
1438
- /** Component to render */
1439
- component: Type<unknown>;
1440
- /** Component inputs */
1441
- inputs?: Record<string, unknown>;
1442
- }
1443
- declare class AXComposerService {
1444
- private readonly conversationService;
1445
- private readonly translation;
1446
- private get registry();
1447
- private readonly _replyMessage;
1448
- private readonly _editMessage;
1449
- readonly replyMessage: _angular_core.Signal<AXMessage>;
1450
- readonly editMessage: _angular_core.Signal<AXMessage>;
1451
- readonly activeConversation: _angular_core.Signal<_acorex_components_conversation2.AXConversation>;
1452
- readonly activeMessages: _angular_core.Signal<AXMessage[]>;
1453
- /** Active component being shown in composer (full-width mode) */
1454
- private readonly _activeComponent;
1455
- readonly activeComponent: _angular_core.Signal<AXComposerActiveComponent>;
1456
- /** Draft text */
1457
- readonly draftText: _angular_core.WritableSignal<string>;
1458
- /** Attachments */
1459
- readonly attachments: _angular_core.WritableSignal<File[]>;
1460
- /** Show typing indicator */
1461
- readonly showTypingIndicator: _angular_core.WritableSignal<boolean>;
1462
- /** Incremented to request focus on the composer text area (handled by AXComposerComponent). */
1463
- private readonly _focusRequest;
1464
- readonly focusRequest: _angular_core.Signal<number>;
1465
- /** Input placeholder */
1466
- readonly placeholder: _angular_core.Signal<string>;
1467
- /** Number of input rows */
1468
- readonly inputRows: _angular_core.Signal<number>;
1469
- /** Can send message */
1470
- readonly canSend: _angular_core.Signal<boolean>;
1471
- /** Composer action context */
1472
- readonly actionContext: _angular_core.Signal<AXComposerActionContext>;
1473
- /** Left actions from registry */
1474
- readonly leftActions: _angular_core.Signal<AXComposerAction[]>;
1475
- /** Right actions from registry */
1476
- readonly rightActions: _angular_core.Signal<AXComposerAction[]>;
1477
- /** Left inline actions (location = 'inline' or undefined) */
1478
- readonly leftInlineActions: _angular_core.Signal<AXComposerAction[]>;
1479
- /** Left menu actions (location = 'menu') */
1480
- readonly leftMenuActions: _angular_core.Signal<AXComposerAction[]>;
1481
- /** Right inline actions (location = 'inline' or undefined) */
1482
- readonly rightInlineActions: _angular_core.Signal<AXComposerAction[]>;
1483
- /** Right menu actions (location = 'menu') */
1484
- readonly rightMenuActions: _angular_core.Signal<AXComposerAction[]>;
1485
- startReply(message: AXMessage): void;
1486
- startEdit(message: AXMessage): void;
1487
- /** Focus the composer text area when the composer component is mounted. */
1488
- focusComposer(): void;
1489
- clear(): void;
1490
- /**
1491
- * Persist draft for the previous conversation and reset composer UI state when switching conversations.
1492
- */
1493
- onConversationChanged(previousConversationId: string | null, currentConversationId: string | null): void;
1494
- sendTypingIndicator(conversationId: string): Promise<void>;
1495
- sendMessage(command: AXSendMessageCommand, options?: AXSendMessageOptions): Promise<void>;
1496
- /**
1497
- * Show a component in the composer (full-width mode)
1498
- */
1499
- showComponent(action: AXComposerAction, inputs?: Record<string, unknown>): void;
1500
- /**
1501
- * Hide the active component
1502
- */
1503
- hideComponent(): void;
1504
- /**
1505
- * Toggle component visibility
1506
- */
1507
- toggleComponent(action: AXComposerAction, inputs?: Record<string, unknown>): void;
1508
- /**
1509
- * Get actions for the active conversation
1510
- */
1511
- getActionsForPosition(position: 'left' | 'right', context: AXComposerActionContext): AXComposerAction[];
1512
- /**
1513
- * Execute an action
1514
- */
1515
- executeAction(actionId: string, context: AXComposerActionContext): Promise<void>;
1516
- /**
1517
- * Save draft to localStorage
1518
- */
1519
- saveDraft(conversationId: string, text: string): void;
1520
- /**
1521
- * Load draft from localStorage
1522
- */
1523
- loadDraft(conversationId: string): string;
1536
+ /**
1537
+ * Main configuration interface for the conversation component
1538
+ */
1539
+ interface AXConversationConfig {
1540
+ /** Number of messages to load per page */
1541
+ messagePageSize?: number;
1542
+ /** Number of conversations to load per page */
1543
+ conversationPageSize?: number;
1544
+ /** Scroll threshold for detecting scroll events */
1545
+ scrollThreshold?: number;
1546
+ /** Infinite scroll threshold */
1547
+ infiniteScrollThreshold?: number;
1548
+ /** Typing indicator timeout in milliseconds */
1549
+ typingIndicatorTimeout?: number;
1550
+ /** Typing indicator throttle in milliseconds (for rate limiting) */
1551
+ typingIndicatorThrottle?: number;
1552
+ /** Message highlight duration in milliseconds */
1553
+ messageHighlightDuration?: number;
1554
+ /** Search debounce delay in milliseconds */
1555
+ debounceSearch?: number;
1556
+ /** Date separator inactivity fade delay in milliseconds */
1557
+ /** Maximum messages per conversation */
1558
+ maxMessagesPerConversation?: number;
1559
+ /** Maximum total messages in store */
1560
+ maxTotalMessages?: number;
1561
+ /** Maximum cached conversations */
1562
+ maxCachedConversations?: number;
1563
+ /** Minimum sidebar width in pixels */
1564
+ minSidebarWidth?: number;
1565
+ /** Maximum sidebar width in pixels */
1566
+ maxSidebarWidth?: number;
1567
+ /** Default sidebar width in pixels */
1568
+ defaultSidebarWidth?: number;
1569
+ /** Filter cache size */
1570
+ filterCacheSize?: number;
1571
+ /** Maximum message length in characters */
1572
+ maxMessageLength?: number;
1573
+ /** Minimum message length in characters */
1574
+ minMessageLength?: number;
1575
+ /** Max attachments per message when a composer action omits `maxFiles`. */
1576
+ maxFilesPerMessage?: number;
1577
+ /** Threshold for marking messages as read (0.0 to 1.0, default: 0.3) */
1578
+ messageReadThreshold?: number;
1524
1579
  /**
1525
- * Clear draft from localStorage
1580
+ * CSS `background` for the message list (`ax-conversation-message-list` area, all states: loading, empty, messages).
1581
+ * Use full shorthand, or a bare `https://...` / `/path/to.png` (wrapped as `url(...)` with `center/cover`).
1582
+ * Empty string = library default soft gradient. `transparent` or `none` = flat background.
1526
1583
  */
1527
- clearDraft(conversationId: string): void;
1528
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXComposerService, never>;
1529
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXComposerService>;
1584
+ messageListBackground?: string;
1530
1585
  }
1531
1586
 
1532
- declare class AXConversationContainerComponent {
1533
- private readonly conversationService;
1534
- private readonly composerService;
1535
- private readonly fileService;
1536
- private readonly translation;
1537
- private readonly toast;
1538
- private readonly hostRef;
1539
- private readonly platformId;
1540
- protected readonly config: Required<_acorex_components_conversation2.AXConversationConfig>;
1541
- private get registry();
1542
- /** Custom CSS class */
1543
- readonly customClass: _angular_core.InputSignal<string>;
1544
- /** Loading state */
1545
- readonly loading: _angular_core.Signal<boolean>;
1546
- /** Error state */
1547
- readonly error: _angular_core.Signal<Error>;
1548
- /** Active conversation */
1549
- readonly activeConversation: _angular_core.Signal<_acorex_components_conversation2.AXConversation>;
1550
- /** Container CSS classes */
1551
- readonly containerClasses: _angular_core.Signal<string>;
1552
- closeActiveConversation(): void;
1553
- /**
1554
- * When the user pastes files copied from the OS (e.g. Ctrl+V after copying in Explorer),
1555
- * open the same composer picker popup used for message-list drag-and-drop.
1556
- */
1557
- onDocumentPaste(event: ClipboardEvent): Promise<void>;
1558
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationContainerComponent, never>;
1559
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationContainerComponent, "ax-conversation-container", never, { "customClass": { "alias": "customClass"; "required": false; "isSignal": true; }; }, {}, never, ["ax-conversation-sidebar, [ax-conversation-sidebar]", "ax-conversation-info-bar, [ax-conversation-info-bar]", "ax-conversation-message-list, [ax-conversation-message-list]", "ax-conversation-composer, [ax-conversation-composer]", "ax-conversation-empty"], true, never>;
1560
- }
1561
-
1562
- declare class AXConversationContainerDirective {
1563
- private readonly conversationService;
1564
- private readonly composerService;
1565
- private readonly fileService;
1566
- private readonly hostRef;
1567
- private readonly platformId;
1568
- private readonly translation;
1569
- private readonly toast;
1570
- private readonly config;
1571
- private get registry();
1572
- /** Active conversation */
1573
- readonly activeConversation: _angular_core.Signal<_acorex_components_conversation2.AXConversation>;
1574
- /** Loading state */
1575
- readonly loading: _angular_core.Signal<boolean>;
1576
- /** Error state */
1577
- readonly error: _angular_core.Signal<Error>;
1578
- closeActiveConversation(): void;
1579
- onDocumentPaste(event: ClipboardEvent): Promise<void>;
1580
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationContainerDirective, never>;
1581
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXConversationContainerDirective, "[axConversationContainer]", never, {}, {}, never, never, true, never>;
1582
- }
1583
-
1584
- interface DropdownMenuItem {
1585
- id: string;
1586
- label: string;
1587
- icon?: string;
1588
- disabled?: boolean;
1589
- divider?: boolean;
1590
- destructive?: boolean;
1591
- shortcut?: string;
1592
- }
1593
- declare class AXInfoBarComponent {
1594
- private readonly conversationService;
1595
- private readonly infoBar;
1596
- protected get registry(): _acorex_components_conversation2.AXRegistryService;
1597
- /** Active conversation */
1598
- readonly activeConversation: _angular_core.Signal<AXConversation>;
1599
- /** Active component from service */
1600
- readonly activeComponent: _angular_core.Signal<_acorex_components_conversation2.AXInfoBarActiveComponent>;
1601
- /** Active banner from service */
1602
- readonly activeBanner: _angular_core.Signal<_acorex_components_conversation2.AXInfoBarActiveBanner>;
1603
- /** Members popover reference */
1604
- readonly membersPopoverRef: _angular_core.Signal<AXPopoverComponent>;
1605
- /** Members popover target element */
1606
- readonly membersPopoverTarget: _angular_core.WritableSignal<HTMLElement>;
1607
- /** Loading state for async actions */
1608
- readonly actionLoading: _angular_core.WritableSignal<boolean>;
1609
- /** Avatar clicked event */
1610
- readonly avatarClick: _angular_core.OutputEmitterRef<void>;
1611
- /** Search clicked event */
1612
- readonly searchClick: _angular_core.OutputEmitterRef<void>;
1613
- /** Search query changed event */
1614
- readonly searchQuery: _angular_core.OutputEmitterRef<string>;
1615
- /** Menu item clicked event */
1616
- readonly menuItemAction: _angular_core.OutputEmitterRef<string>;
1617
- /** Inline action buttons from registry */
1618
- readonly inlineActions: _angular_core.Signal<_acorex_components_conversation2.AXInfoBarAction[]>;
1619
- /** Dropdown menu items from registry */
1620
- readonly menuItems: _angular_core.Signal<DropdownMenuItem[]>;
1621
- /** Get conversation status - delegate to utils */
1622
- getStatus(conversation: AXConversation): 'online' | 'offline' | 'away' | undefined;
1623
- /** Get subtitle text - delegate to utils */
1624
- getSubtitle(conversation: AXConversation): string;
1625
- /** Get initials from name - delegate to utils */
1626
- getInitials(name: string): string;
1627
- getConversationAvatar(conversation: AXConversation): string | undefined;
1628
- getConversationAvatarIcon(conversation: AXConversation): string | undefined;
1629
- /** Handle avatar click */
1630
- onAvatarClick(): void;
1631
- /** Handle members click - open popover */
1632
- onMembersClick(event: MouseEvent): void;
1633
- /** Handle inline action click */
1634
- onInlineActionClick(actionId: string): Promise<void>;
1635
- /** Get inputs for dynamic component */
1636
- getComponentInputs(): Record<string, unknown>;
1637
- getInlineComponentInputs(): Record<string, unknown>;
1638
- isActiveComponentFullWidth(): boolean;
1639
- /** Handle close component */
1640
- onCloseComponent(): void;
1641
- getBannerInputs(): Record<string, unknown>;
1642
- onCloseBanner(): void;
1643
- /** Handle menu item click */
1644
- onMenuItemClick(item: DropdownMenuItem): Promise<void>;
1645
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInfoBarComponent, never>;
1646
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXInfoBarComponent, "ax-conversation-info-bar", never, {}, { "avatarClick": "avatarClick"; "searchClick": "searchClick"; "searchQuery": "searchQuery"; "menuItemAction": "menuItemAction"; }, never, ["ax-prefix"], true, never>;
1647
- }
1587
+ /**
1588
+ * Default Configuration Values
1589
+ * Centralized defaults to avoid magic numbers throughout the codebase
1590
+ */
1648
1591
 
1649
1592
  /**
1650
- * Active component state in info-bar
1593
+ * Default conversation configuration
1594
+ * All values are explicitly defined here for easy maintenance and documentation
1651
1595
  */
1652
- interface AXInfoBarActiveComponent {
1653
- /** Action that triggered this component */
1654
- action: AXInfoBarAction;
1655
- /** Component to render */
1656
- component: Type<unknown>;
1657
- /** Component inputs */
1658
- inputs?: Record<string, unknown>;
1659
- }
1660
- interface AXInfoBarActiveBanner {
1661
- /** Message that owns this banner */
1662
- message: AXMessage;
1663
- /** Banner component */
1664
- component: Type<AXMessageInfoBarBannerComponent>;
1665
- /** Additional component inputs (only keys that match declared `input()` on the banner) */
1666
- inputs?: Record<string, unknown>;
1667
- /** Callback invoked when the banner is dismissed (e.g. pause playback) */
1668
- onClose?: () => void;
1669
- }
1596
+ declare const AX_DEFAULT_CONVERSATION_CONFIG: Required<AXConversationConfig>;
1670
1597
  /**
1671
- * Info Bar Service
1672
- * Manages info bar state and actions
1598
+ * Helper function to merge user config with defaults
1599
+ * Properly handles array merging to avoid reference issues
1600
+ * @param userConfig - User-provided configuration
1601
+ * @returns Merged configuration with all required fields
1673
1602
  */
1674
- declare class AXInfoBarService {
1675
- private readonly conversationService;
1676
- private readonly injector;
1677
- private get registry();
1678
- /** Active conversation */
1679
- readonly activeConversation: _angular_core.Signal<AXConversation>;
1680
- /** Active component being shown in info-bar */
1681
- private readonly _activeComponent;
1682
- readonly activeComponent: _angular_core.Signal<AXInfoBarActiveComponent>;
1683
- /** Active banner shown under info-bar */
1684
- private readonly _activeBanner;
1685
- readonly activeBanner: _angular_core.Signal<AXInfoBarActiveBanner>;
1686
- /** Search query signal */
1687
- private readonly _searchQuery;
1688
- readonly searchQuery: _angular_core.Signal<string>;
1689
- private readonly _searchResultsCount;
1690
- readonly searchResultsCount: _angular_core.Signal<number>;
1691
- /** Current search result index */
1692
- private readonly _currentSearchIndex;
1693
- readonly currentSearchIndex: _angular_core.Signal<number>;
1694
- /**
1695
- * Reset info-bar overlays when the active conversation changes.
1696
- */
1697
- onConversationChanged(): void;
1698
- /**
1699
- * Get actions for the active conversation
1700
- */
1701
- getActionsForConversation(conversation: AXConversation): AXInfoBarAction[];
1702
- /**
1703
- * Execute an action
1704
- */
1705
- executeAction(actionId: string, conversation: AXConversation, data?: Record<string, unknown>): Promise<void>;
1706
- /**
1707
- * Get action label
1708
- */
1709
- getActionLabel(action: AXInfoBarAction, conversation: AXConversation): string;
1710
- /**
1711
- * Get action icon
1712
- */
1713
- getActionIcon(action: AXInfoBarAction, conversation: AXConversation): string | undefined;
1714
- /**
1715
- * Show a component in the info-bar
1716
- */
1717
- showComponent(action: AXInfoBarAction, inputs?: Record<string, unknown>): void;
1718
- /**
1719
- * Hide the active component
1720
- */
1721
- hideComponent(): void;
1722
- /**
1723
- * Show message-owned banner under info-bar if renderer provides one
1724
- */
1725
- showMessageBanner(message: AXMessage, inputs?: Record<string, unknown>): void;
1726
- /**
1727
- * Update active banner inputs for a specific message
1728
- */
1729
- updateMessageBannerInputs(messageId: string, inputs: Record<string, unknown>): void;
1730
- /**
1731
- * Hide active banner. If messageId is provided, hide only when it matches.
1732
- */
1733
- hideMessageBanner(messageId?: string): void;
1734
- isMessageBannerActive(messageId: string): boolean;
1735
- /**
1736
- * Toggle component visibility
1737
- */
1738
- toggleComponent(action: AXInfoBarAction, inputs?: Record<string, unknown>): void;
1739
- /**
1740
- * Set search query
1741
- */
1742
- setSearchQuery(query: string): void;
1743
- /**
1744
- * Set search results
1745
- */
1746
- setSearchResults(count: number, currentIndex?: number): void;
1747
- /**
1748
- * Navigate to next search result
1749
- */
1750
- nextSearchResult(): void;
1751
- /**
1752
- * Navigate to previous search result
1753
- */
1754
- previousSearchResult(): void;
1755
- /**
1756
- * Clear search
1757
- */
1758
- clearSearch(): void;
1759
- private _extractOnClose;
1760
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInfoBarService, never>;
1761
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXInfoBarService>;
1762
- }
1603
+ declare function mergeWithDefaults(userConfig?: Partial<AXConversationConfig>): Required<AXConversationConfig>;
1763
1604
 
1764
1605
  /**
1765
1606
  * Shared API Types
@@ -3038,32 +2879,398 @@ declare abstract class AXUserApi {
3038
2879
  }
3039
2880
 
3040
2881
  /**
3041
- * Central Registry Service
3042
- * Provides unified access to all registries
3043
- *
3044
- * This service is now pure - all default features are plugins.
3045
- * Use tokens to register plugins in your app configuration.
2882
+ * Error severity levels
3046
2883
  */
3047
- declare class AXRegistryService {
3048
- /** Message renderer registry */
3049
- readonly messageRenderers: AXMessageRendererRegistry;
3050
- /** Message action registry */
3051
- readonly messageActions: AXMessageActionRegistry;
3052
- /** Composer tab registry */
3053
- readonly composerTabs: AXComposerTabRegistry;
3054
- /** Composer action registry */
3055
- readonly composerActions: AXComposerActionRegistry;
3056
- /** Conversation tab registry */
3057
- readonly conversationTabs: AXConversationTabRegistry;
3058
- /** Info bar action registry */
3059
- readonly infoBarActions: AXInfoBarActionRegistry;
3060
- /** Conversation item action registry */
3061
- readonly conversationItemActions: AXConversationItemActionRegistry;
3062
- /**
3063
- * Clear all registries
3064
- */
3065
- clearAll(): void;
3066
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXRegistryService, never>;
2884
+ type AXErrorSeverity = 'info' | 'warning' | 'error' | 'critical';
2885
+ /**
2886
+ * Conversation error event
2887
+ */
2888
+ interface AXConversationError {
2889
+ /** Error code */
2890
+ code: string;
2891
+ /** Error message */
2892
+ message: string;
2893
+ /** Severity level */
2894
+ severity: AXErrorSeverity;
2895
+ /** Source operation */
2896
+ operation: string;
2897
+ /** Original error */
2898
+ originalError?: unknown;
2899
+ /** HTTP status code (if applicable) */
2900
+ statusCode?: number;
2901
+ /** Additional context */
2902
+ context?: Record<string, unknown>;
2903
+ /** Timestamp */
2904
+ timestamp: Date;
2905
+ /** Whether error was handled */
2906
+ handled: boolean;
2907
+ /** Recovery suggestions */
2908
+ recoverySuggestions?: string[];
2909
+ }
2910
+ /**
2911
+ * Error Handler Configuration
2912
+ */
2913
+ interface AXErrorHandlerConfig {
2914
+ /** Log errors to console */
2915
+ logToConsole?: boolean;
2916
+ /** Show user-friendly error messages */
2917
+ showUserMessages?: boolean;
2918
+ /** Retry failed operations automatically */
2919
+ autoRetry?: boolean;
2920
+ /** Number of retry attempts */
2921
+ maxRetries?: number;
2922
+ /** Custom error handler */
2923
+ customHandler?: (error: AXConversationError) => void;
2924
+ }
2925
+ /**
2926
+ * Error Handler Service
2927
+ */
2928
+ declare class AXErrorHandlerService {
2929
+ private readonly injectedConfig;
2930
+ private readonly _errors$;
2931
+ private readonly _config;
2932
+ /** Error stream */
2933
+ readonly errors$: rxjs.Observable<AXConversationError>;
2934
+ constructor();
2935
+ /**
2936
+ * Configure error handler
2937
+ */
2938
+ configure(config: Partial<AXErrorHandlerConfig>): void;
2939
+ /**
2940
+ * Handle an error
2941
+ */
2942
+ handle(error: unknown, operation: string, context?: Record<string, unknown>): AXConversationError;
2943
+ /**
2944
+ * Handle API error (same pipeline as {@link handle}, for typed API failures)
2945
+ */
2946
+ handleApiError(apiError: AXApiError, operation: string, context?: Record<string, unknown>): AXConversationError;
2947
+ private publish;
2948
+ /**
2949
+ * Normalize any error to conversation error format (does not publish — use {@link handle})
2950
+ */
2951
+ private normalizeError;
2952
+ private conversationErrorFromApi;
2953
+ private isApiError;
2954
+ /**
2955
+ * Determine severity based on status code
2956
+ */
2957
+ private determineSeverity;
2958
+ /**
2959
+ * Get recovery suggestions based on error
2960
+ */
2961
+ private getRecoverySuggestions;
2962
+ /**
2963
+ * Get default recovery suggestions
2964
+ */
2965
+ private getDefaultRecoverySuggestions;
2966
+ /**
2967
+ * Log error to console
2968
+ */
2969
+ private logError;
2970
+ /**
2971
+ * Get user-friendly error message
2972
+ */
2973
+ getUserFriendlyMessage(error: AXConversationError): string;
2974
+ /**
2975
+ * Check if error is retryable
2976
+ */
2977
+ isRetryable(error: AXConversationError): boolean;
2978
+ /**
2979
+ * Execute an operation with automatic retry logic
2980
+ * @param operation - The async operation to execute
2981
+ * @param operationName - Name of the operation for error tracking
2982
+ * @param context - Additional context for error handling
2983
+ * @returns Promise resolving to the operation result
2984
+ * @throws {AXConversationError} If all retries fail
2985
+ */
2986
+ executeWithRetry<T>(operation: () => Promise<T>, operationName: string, context?: Record<string, unknown>): Promise<T>;
2987
+ /**
2988
+ * Delay helper for retry backoff
2989
+ * @param ms - Milliseconds to delay
2990
+ */
2991
+ private delay;
2992
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXErrorHandlerService, never>;
2993
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXErrorHandlerService>;
2994
+ }
2995
+
2996
+ /**
2997
+ * Dependency Injection Tokens
2998
+ * InjectionTokens for configuration and dependencies
2999
+ */
3000
+
3001
+ /**
3002
+ * Configuration token for conversation component
3003
+ * Uses centralized defaults from AX_DEFAULT_CONVERSATION_CONFIG
3004
+ */
3005
+ declare const CONVERSATION_CONFIG: InjectionToken<Required<AXConversationConfig>>;
3006
+ /**
3007
+ * Token for configuring AXErrorHandlerService
3008
+ */
3009
+ declare const ERROR_HANDLER_CONFIG: InjectionToken<Partial<AXErrorHandlerConfig>>;
3010
+
3011
+ /**
3012
+ * Registry Configuration Tokens
3013
+ * Injection tokens for configuring default registry values
3014
+ */
3015
+
3016
+ /**
3017
+ * Additional message renderers configuration
3018
+ * Provide this token to add custom message renderers in addition to built-in ones
3019
+ * Note: Built-in renderers (text, system, fallback) are registered by default; other types are provided via plugins/constants.
3020
+ */
3021
+ declare const DEFAULT_MESSAGE_RENDERERS: InjectionToken<AXMessageRenderer[]>;
3022
+ /**
3023
+ * Default message actions configuration
3024
+ * Provide this token to override default message actions
3025
+ */
3026
+ declare const DEFAULT_MESSAGE_ACTIONS: InjectionToken<AXMessageAction[]>;
3027
+ /**
3028
+ * Default composer tabs configuration
3029
+ * Provide this token to override default composer tabs (emoji, stickers, etc.)
3030
+ */
3031
+ declare const DEFAULT_COMPOSER_TABS: InjectionToken<AXComposerTab[]>;
3032
+ /**
3033
+ * Default composer actions configuration
3034
+ * Provide this token to override default composer actions (attach, voice, etc.)
3035
+ */
3036
+ declare const DEFAULT_COMPOSER_ACTIONS: InjectionToken<AXComposerAction[]>;
3037
+ /**
3038
+ * Default conversation tabs configuration
3039
+ * Provide this token to override default conversation tabs (all, private, groups, etc.)
3040
+ */
3041
+ declare const DEFAULT_CONVERSATION_TABS: InjectionToken<AXConversationTab[]>;
3042
+ /**
3043
+ * Default info bar actions configuration
3044
+ * Provide this token to override default info bar actions (mute, archive, block, etc.)
3045
+ */
3046
+ declare const DEFAULT_INFO_BAR_ACTIONS: InjectionToken<AXInfoBarAction[]>;
3047
+ /**
3048
+ * Default conversation item actions configuration
3049
+ * Provide this token to override default conversation item actions (mute, delete, archive, etc.)
3050
+ */
3051
+ declare const DEFAULT_CONVERSATION_ITEM_ACTIONS: InjectionToken<AXConversationItemAction[]>;
3052
+ /**
3053
+ * Registry configuration interface
3054
+ */
3055
+ interface AXRegistryConfiguration {
3056
+ /**
3057
+ * Additional message renderers to register (built-in renderers are automatic).
3058
+ * Each {@link AXMessageRenderer} may include optional `composerActions` for co-located send UX.
3059
+ */
3060
+ messageRenderers?: AXMessageRenderer[];
3061
+ /** Message actions to register by default */
3062
+ messageActions?: AXMessageAction[];
3063
+ /** Composer tabs to register by default */
3064
+ composerTabs?: AXComposerTab[];
3065
+ /** Composer actions to register by default */
3066
+ composerActions?: AXComposerAction[];
3067
+ /** Conversation tabs to register by default */
3068
+ conversationTabs?: AXConversationTab[];
3069
+ /** Info bar actions to register by default */
3070
+ infoBarActions?: AXInfoBarAction[];
3071
+ /** Conversation item actions to register by default */
3072
+ conversationItemActions?: AXConversationItemAction[];
3073
+ }
3074
+ /**
3075
+ * Complete registry configuration token
3076
+ * Provide this for comprehensive registry configuration
3077
+ */
3078
+ declare const REGISTRY_CONFIG: InjectionToken<AXRegistryConfiguration>;
3079
+
3080
+ declare class AXConversationContainerComponent {
3081
+ private readonly conversationService;
3082
+ private readonly composerService;
3083
+ private readonly fileService;
3084
+ private readonly translation;
3085
+ private readonly toast;
3086
+ private readonly hostRef;
3087
+ private readonly platformId;
3088
+ protected readonly config: Required<AXConversationConfig>;
3089
+ private get registry();
3090
+ /** Custom CSS class */
3091
+ readonly customClass: _angular_core.InputSignal<string>;
3092
+ /** Loading state */
3093
+ readonly loading: _angular_core.Signal<boolean>;
3094
+ /** Error state */
3095
+ readonly error: _angular_core.Signal<Error>;
3096
+ /** Active conversation */
3097
+ readonly activeConversation: _angular_core.Signal<_acorex_components_conversation2.AXConversation>;
3098
+ /** Container CSS classes */
3099
+ readonly containerClasses: _angular_core.Signal<string>;
3100
+ closeActiveConversation(): void;
3101
+ /**
3102
+ * When the user pastes files copied from the OS (e.g. Ctrl+V after copying in Explorer),
3103
+ * open the same composer picker popup used for message-list drag-and-drop.
3104
+ */
3105
+ onDocumentPaste(event: ClipboardEvent): Promise<void>;
3106
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationContainerComponent, never>;
3107
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationContainerComponent, "ax-conversation-container", never, { "customClass": { "alias": "customClass"; "required": false; "isSignal": true; }; }, {}, never, ["ax-conversation-sidebar, [ax-conversation-sidebar]", "ax-conversation-info-bar, [ax-conversation-info-bar]", "ax-conversation-message-list, [ax-conversation-message-list]", "ax-conversation-composer, [ax-conversation-composer]", "ax-conversation-empty"], true, never>;
3108
+ }
3109
+
3110
+ declare class AXConversationContainerDirective {
3111
+ private readonly conversationService;
3112
+ private readonly composerService;
3113
+ private readonly fileService;
3114
+ private readonly hostRef;
3115
+ private readonly platformId;
3116
+ private readonly translation;
3117
+ private readonly toast;
3118
+ private readonly config;
3119
+ private get registry();
3120
+ /** Active conversation */
3121
+ readonly activeConversation: _angular_core.Signal<_acorex_components_conversation2.AXConversation>;
3122
+ /** Loading state */
3123
+ readonly loading: _angular_core.Signal<boolean>;
3124
+ /** Error state */
3125
+ readonly error: _angular_core.Signal<Error>;
3126
+ closeActiveConversation(): void;
3127
+ onDocumentPaste(event: ClipboardEvent): Promise<void>;
3128
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationContainerDirective, never>;
3129
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXConversationContainerDirective, "[axConversationContainer]", never, {}, {}, never, never, true, never>;
3130
+ }
3131
+
3132
+ /**
3133
+ * Active component state in info-bar
3134
+ */
3135
+ interface AXInfoBarActiveComponent {
3136
+ /** Action that triggered this component */
3137
+ action: AXInfoBarAction;
3138
+ /** Component to render */
3139
+ component: Type<unknown>;
3140
+ /** Component inputs */
3141
+ inputs?: Record<string, unknown>;
3142
+ }
3143
+ interface AXInfoBarActiveBanner {
3144
+ /** Message that owns this banner */
3145
+ message: AXMessage;
3146
+ /** Banner component */
3147
+ component: Type<AXMessageInfoBarBannerComponent>;
3148
+ /** Additional component inputs (only keys that match declared `input()` on the banner) */
3149
+ inputs?: Record<string, unknown>;
3150
+ /** Callback invoked when the banner is dismissed (e.g. pause playback) */
3151
+ onClose?: () => void;
3152
+ }
3153
+ /**
3154
+ * Info Bar Service
3155
+ * Manages info bar state and actions
3156
+ */
3157
+ declare class AXInfoBarService {
3158
+ private readonly conversationService;
3159
+ private readonly injector;
3160
+ private get registry();
3161
+ /** Active conversation */
3162
+ readonly activeConversation: _angular_core.Signal<AXConversation>;
3163
+ /** Active component being shown in info-bar */
3164
+ private readonly _activeComponent;
3165
+ readonly activeComponent: _angular_core.Signal<AXInfoBarActiveComponent>;
3166
+ /** Active banner shown under info-bar */
3167
+ private readonly _activeBanner;
3168
+ readonly activeBanner: _angular_core.Signal<AXInfoBarActiveBanner>;
3169
+ /** Search query signal */
3170
+ private readonly _searchQuery;
3171
+ readonly searchQuery: _angular_core.Signal<string>;
3172
+ private readonly _searchResultsCount;
3173
+ readonly searchResultsCount: _angular_core.Signal<number>;
3174
+ /** Current search result index */
3175
+ private readonly _currentSearchIndex;
3176
+ readonly currentSearchIndex: _angular_core.Signal<number>;
3177
+ /**
3178
+ * Reset info-bar overlays when the active conversation changes.
3179
+ */
3180
+ onConversationChanged(): void;
3181
+ /**
3182
+ * Get actions for the active conversation
3183
+ */
3184
+ getActionsForConversation(conversation: AXConversation): AXInfoBarAction[];
3185
+ /**
3186
+ * Execute an action
3187
+ */
3188
+ executeAction(actionId: string, conversation: AXConversation, data?: Record<string, unknown>): Promise<void>;
3189
+ /**
3190
+ * Get action label
3191
+ */
3192
+ getActionLabel(action: AXInfoBarAction, conversation: AXConversation): string;
3193
+ /**
3194
+ * Get action icon
3195
+ */
3196
+ getActionIcon(action: AXInfoBarAction, conversation: AXConversation): string | undefined;
3197
+ /**
3198
+ * Show a component in the info-bar
3199
+ */
3200
+ showComponent(action: AXInfoBarAction, inputs?: Record<string, unknown>): void;
3201
+ /**
3202
+ * Hide the active component
3203
+ */
3204
+ hideComponent(): void;
3205
+ /**
3206
+ * Show message-owned banner under info-bar if renderer provides one
3207
+ */
3208
+ showMessageBanner(message: AXMessage, inputs?: Record<string, unknown>): void;
3209
+ /**
3210
+ * Update active banner inputs for a specific message
3211
+ */
3212
+ updateMessageBannerInputs(messageId: string, inputs: Record<string, unknown>): void;
3213
+ /**
3214
+ * Hide active banner. If messageId is provided, hide only when it matches.
3215
+ */
3216
+ hideMessageBanner(messageId?: string): void;
3217
+ isMessageBannerActive(messageId: string): boolean;
3218
+ /**
3219
+ * Toggle component visibility
3220
+ */
3221
+ toggleComponent(action: AXInfoBarAction, inputs?: Record<string, unknown>): void;
3222
+ /**
3223
+ * Set search query
3224
+ */
3225
+ setSearchQuery(query: string): void;
3226
+ /**
3227
+ * Set search results
3228
+ */
3229
+ setSearchResults(count: number, currentIndex?: number): void;
3230
+ /**
3231
+ * Navigate to next search result
3232
+ */
3233
+ nextSearchResult(): void;
3234
+ /**
3235
+ * Navigate to previous search result
3236
+ */
3237
+ previousSearchResult(): void;
3238
+ /**
3239
+ * Clear search
3240
+ */
3241
+ clearSearch(): void;
3242
+ private _extractOnClose;
3243
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInfoBarService, never>;
3244
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXInfoBarService>;
3245
+ }
3246
+
3247
+ /**
3248
+ * Central Registry Service
3249
+ * Provides unified access to all registries
3250
+ *
3251
+ * This service is now pure - all default features are plugins.
3252
+ * Use tokens to register plugins in your app configuration.
3253
+ */
3254
+ declare class AXRegistryService {
3255
+ /** Message renderer registry */
3256
+ readonly messageRenderers: AXMessageRendererRegistry;
3257
+ /** Message action registry */
3258
+ readonly messageActions: AXMessageActionRegistry;
3259
+ /** Composer tab registry */
3260
+ readonly composerTabs: AXComposerTabRegistry;
3261
+ /** Composer action registry */
3262
+ readonly composerActions: AXComposerActionRegistry;
3263
+ /** Conversation tab registry */
3264
+ readonly conversationTabs: AXConversationTabRegistry;
3265
+ /** Info bar action registry */
3266
+ readonly infoBarActions: AXInfoBarActionRegistry;
3267
+ /** Conversation item action registry */
3268
+ readonly conversationItemActions: AXConversationItemActionRegistry;
3269
+ /**
3270
+ * Clear all registries
3271
+ */
3272
+ clearAll(): void;
3273
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXRegistryService, never>;
3067
3274
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXRegistryService>;
3068
3275
  }
3069
3276
 
@@ -3134,9 +3341,9 @@ declare class AXConversationService {
3134
3341
  /** Error state */
3135
3342
  readonly error: _angular_core.Signal<Error>;
3136
3343
  /** Connection status */
3137
- readonly connectionStatus$: rxjs.Observable<_acorex_components_conversation2.AXConnectionStatus>;
3344
+ readonly connectionStatus$: rxjs.Observable<AXConnectionStatus>;
3138
3345
  /** Error stream */
3139
- readonly errors$: rxjs.Observable<_acorex_components_conversation2.AXConversationError>;
3346
+ readonly errors$: rxjs.Observable<AXConversationError>;
3140
3347
  readonly onMessageReceived: rxjs.Observable<AXMessage>;
3141
3348
  readonly onMessageUpdated: rxjs.Observable<AXMessage>;
3142
3349
  readonly onMessageDeleted: rxjs.Observable<string>;
@@ -3148,7 +3355,7 @@ declare class AXConversationService {
3148
3355
  type: "reply" | "forward";
3149
3356
  }>;
3150
3357
  private _currentUser;
3151
- readonly currentUser: _angular_core.Signal<_acorex_components_conversation2.AXParticipant>;
3358
+ readonly currentUser: _angular_core.Signal<AXParticipant>;
3152
3359
  constructor();
3153
3360
  /**
3154
3361
  * Initialize the service
@@ -3471,142 +3678,92 @@ declare class AXConversationService {
3471
3678
  * Unblock user
3472
3679
  * @param userId - User ID to unblock
3473
3680
  */
3474
- unblockUser(userId: string): Promise<void>;
3475
- /**
3476
- * Get blocked users
3477
- * @returns Array of blocked user IDs
3478
- */
3479
- getBlockedUsers(): Promise<string[]>;
3480
- /**
3481
- * Update user presence
3482
- * @param status - Presence status
3483
- * @param statusText - Optional status text
3484
- */
3485
- updatePresence(status: 'online' | 'offline' | 'away' | 'busy' | 'invisible', statusText?: string): Promise<void>;
3486
- /**
3487
- * Validate message content before sending
3488
- * Uses centralized validation utilities for consistency
3489
- * @param command - Message command to validate
3490
- * @throws {Error} If message content is invalid
3491
- */
3492
- private validateMessageContent;
3493
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationService, never>;
3494
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationService>;
3495
- }
3496
-
3497
- /**
3498
- * Error severity levels
3499
- */
3500
- type AXErrorSeverity = 'info' | 'warning' | 'error' | 'critical';
3501
- /**
3502
- * Conversation error event
3503
- */
3504
- interface AXConversationError {
3505
- /** Error code */
3506
- code: string;
3507
- /** Error message */
3508
- message: string;
3509
- /** Severity level */
3510
- severity: AXErrorSeverity;
3511
- /** Source operation */
3512
- operation: string;
3513
- /** Original error */
3514
- originalError?: unknown;
3515
- /** HTTP status code (if applicable) */
3516
- statusCode?: number;
3517
- /** Additional context */
3518
- context?: Record<string, unknown>;
3519
- /** Timestamp */
3520
- timestamp: Date;
3521
- /** Whether error was handled */
3522
- handled: boolean;
3523
- /** Recovery suggestions */
3524
- recoverySuggestions?: string[];
3525
- }
3526
- /**
3527
- * Error Handler Configuration
3528
- */
3529
- interface AXErrorHandlerConfig {
3530
- /** Log errors to console */
3531
- logToConsole?: boolean;
3532
- /** Show user-friendly error messages */
3533
- showUserMessages?: boolean;
3534
- /** Retry failed operations automatically */
3535
- autoRetry?: boolean;
3536
- /** Number of retry attempts */
3537
- maxRetries?: number;
3538
- /** Custom error handler */
3539
- customHandler?: (error: AXConversationError) => void;
3540
- }
3541
- /**
3542
- * Error Handler Service
3543
- */
3544
- declare class AXErrorHandlerService {
3545
- private readonly injectedConfig;
3546
- private readonly _errors$;
3547
- private readonly _config;
3548
- /** Error stream */
3549
- readonly errors$: rxjs.Observable<AXConversationError>;
3550
- constructor();
3551
- /**
3552
- * Configure error handler
3553
- */
3554
- configure(config: Partial<AXErrorHandlerConfig>): void;
3555
- /**
3556
- * Handle an error
3557
- */
3558
- handle(error: unknown, operation: string, context?: Record<string, unknown>): AXConversationError;
3559
- /**
3560
- * Handle API error (same pipeline as {@link handle}, for typed API failures)
3561
- */
3562
- handleApiError(apiError: AXApiError, operation: string, context?: Record<string, unknown>): AXConversationError;
3563
- private publish;
3564
- /**
3565
- * Normalize any error to conversation error format (does not publish — use {@link handle})
3566
- */
3567
- private normalizeError;
3568
- private conversationErrorFromApi;
3569
- private isApiError;
3570
- /**
3571
- * Determine severity based on status code
3572
- */
3573
- private determineSeverity;
3574
- /**
3575
- * Get recovery suggestions based on error
3576
- */
3577
- private getRecoverySuggestions;
3578
- /**
3579
- * Get default recovery suggestions
3580
- */
3581
- private getDefaultRecoverySuggestions;
3582
- /**
3583
- * Log error to console
3584
- */
3585
- private logError;
3586
- /**
3587
- * Get user-friendly error message
3588
- */
3589
- getUserFriendlyMessage(error: AXConversationError): string;
3681
+ unblockUser(userId: string): Promise<void>;
3590
3682
  /**
3591
- * Check if error is retryable
3683
+ * Get blocked users
3684
+ * @returns Array of blocked user IDs
3592
3685
  */
3593
- isRetryable(error: AXConversationError): boolean;
3686
+ getBlockedUsers(): Promise<string[]>;
3594
3687
  /**
3595
- * Execute an operation with automatic retry logic
3596
- * @param operation - The async operation to execute
3597
- * @param operationName - Name of the operation for error tracking
3598
- * @param context - Additional context for error handling
3599
- * @returns Promise resolving to the operation result
3600
- * @throws {AXConversationError} If all retries fail
3688
+ * Update user presence
3689
+ * @param status - Presence status
3690
+ * @param statusText - Optional status text
3601
3691
  */
3602
- executeWithRetry<T>(operation: () => Promise<T>, operationName: string, context?: Record<string, unknown>): Promise<T>;
3692
+ updatePresence(status: 'online' | 'offline' | 'away' | 'busy' | 'invisible', statusText?: string): Promise<void>;
3603
3693
  /**
3604
- * Delay helper for retry backoff
3605
- * @param ms - Milliseconds to delay
3694
+ * Validate message content before sending
3695
+ * Uses centralized validation utilities for consistency
3696
+ * @param command - Message command to validate
3697
+ * @throws {Error} If message content is invalid
3606
3698
  */
3607
- private delay;
3608
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXErrorHandlerService, never>;
3609
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXErrorHandlerService>;
3699
+ private validateMessageContent;
3700
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationService, never>;
3701
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationService>;
3702
+ }
3703
+
3704
+ interface DropdownMenuItem {
3705
+ id: string;
3706
+ label: string;
3707
+ icon?: string;
3708
+ disabled?: boolean;
3709
+ divider?: boolean;
3710
+ destructive?: boolean;
3711
+ shortcut?: string;
3712
+ }
3713
+ declare class AXInfoBarComponent {
3714
+ private readonly conversationService;
3715
+ private readonly infoBar;
3716
+ protected get registry(): AXRegistryService;
3717
+ /** Active conversation */
3718
+ readonly activeConversation: _angular_core.Signal<AXConversation>;
3719
+ /** Active component from service */
3720
+ readonly activeComponent: _angular_core.Signal<AXInfoBarActiveComponent>;
3721
+ /** Active banner from service */
3722
+ readonly activeBanner: _angular_core.Signal<AXInfoBarActiveBanner>;
3723
+ /** Members popover reference */
3724
+ readonly membersPopoverRef: _angular_core.Signal<AXPopoverComponent>;
3725
+ /** Members popover target element */
3726
+ readonly membersPopoverTarget: _angular_core.WritableSignal<HTMLElement>;
3727
+ /** Loading state for async actions */
3728
+ readonly actionLoading: _angular_core.WritableSignal<boolean>;
3729
+ /** Avatar clicked event */
3730
+ readonly avatarClick: _angular_core.OutputEmitterRef<void>;
3731
+ /** Search clicked event */
3732
+ readonly searchClick: _angular_core.OutputEmitterRef<void>;
3733
+ /** Search query changed event */
3734
+ readonly searchQuery: _angular_core.OutputEmitterRef<string>;
3735
+ /** Menu item clicked event */
3736
+ readonly menuItemAction: _angular_core.OutputEmitterRef<string>;
3737
+ /** Inline action buttons from registry */
3738
+ readonly inlineActions: _angular_core.Signal<_acorex_components_conversation2.AXInfoBarAction[]>;
3739
+ /** Dropdown menu items from registry */
3740
+ readonly menuItems: _angular_core.Signal<DropdownMenuItem[]>;
3741
+ /** Get conversation status - delegate to utils */
3742
+ getStatus(conversation: AXConversation): 'online' | 'offline' | 'away' | undefined;
3743
+ /** Get subtitle text - delegate to utils */
3744
+ getSubtitle(conversation: AXConversation): string;
3745
+ /** Get initials from name - delegate to utils */
3746
+ getInitials(name: string): string;
3747
+ getConversationAvatar(conversation: AXConversation): string | undefined;
3748
+ getConversationAvatarIcon(conversation: AXConversation): string | undefined;
3749
+ /** Handle avatar click */
3750
+ onAvatarClick(): void;
3751
+ /** Handle members click - open popover */
3752
+ onMembersClick(event: MouseEvent): void;
3753
+ /** Handle inline action click */
3754
+ onInlineActionClick(actionId: string): Promise<void>;
3755
+ /** Get inputs for dynamic component */
3756
+ getComponentInputs(): Record<string, unknown>;
3757
+ getInlineComponentInputs(): Record<string, unknown>;
3758
+ isActiveComponentFullWidth(): boolean;
3759
+ /** Handle close component */
3760
+ onCloseComponent(): void;
3761
+ getBannerInputs(): Record<string, unknown>;
3762
+ onCloseBanner(): void;
3763
+ /** Handle menu item click */
3764
+ onMenuItemClick(item: DropdownMenuItem): Promise<void>;
3765
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInfoBarComponent, never>;
3766
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXInfoBarComponent, "ax-conversation-info-bar", never, {}, { "avatarClick": "avatarClick"; "searchClick": "searchClick"; "searchQuery": "searchQuery"; "menuItemAction": "menuItemAction"; }, never, ["ax-prefix"], true, never>;
3610
3767
  }
3611
3768
 
3612
3769
  declare class AXForwardMessageDialogComponent implements OnInit {
@@ -3738,11 +3895,11 @@ declare class AXAudioRendererComponent extends AXMessageRendererCopyHostComponen
3738
3895
  private readonly duration;
3739
3896
  readonly message: _angular_core.InputSignal<AXMessage>;
3740
3897
  readonly rendererState: _angular_core.Signal<{
3741
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
3898
+ deliveryStatus: AXMessageStatus;
3742
3899
  contentState: AXMessageRendererContentState;
3743
3900
  }>;
3744
3901
  readonly payload: _angular_core.Signal<AXAudioPayload>;
3745
- readonly audios: _angular_core.Signal<_acorex_components_conversation2.AXAudioMediaItem[]>;
3902
+ readonly audios: _angular_core.Signal<AXAudioMediaItem[]>;
3746
3903
  readonly caption: _angular_core.Signal<string>;
3747
3904
  copy(): Promise<string>;
3748
3905
  constructor();
@@ -3763,7 +3920,7 @@ declare class AXFallbackRendererComponent implements AXMessageRendererComponent
3763
3920
  private readonly _contentState;
3764
3921
  readonly message: _angular_core.InputSignal<AXMessage>;
3765
3922
  readonly rendererState: _angular_core.Signal<{
3766
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
3923
+ deliveryStatus: AXMessageStatus;
3767
3924
  contentState: AXMessageRendererContentState;
3768
3925
  }>;
3769
3926
  readonly messageTypeLabel: _angular_core.Signal<string>;
@@ -3777,11 +3934,11 @@ declare class AXFileRendererComponent extends AXMessageRendererCopyHostComponent
3777
3934
  private readonly fileTypes;
3778
3935
  readonly message: _angular_core.InputSignal<AXMessage>;
3779
3936
  readonly rendererState: _angular_core.Signal<{
3780
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
3937
+ deliveryStatus: AXMessageStatus;
3781
3938
  contentState: "ready";
3782
3939
  }>;
3783
3940
  readonly payload: _angular_core.Signal<AXFilePayload>;
3784
- readonly files: _angular_core.Signal<_acorex_components_conversation2.AXFileMediaItem[]>;
3941
+ readonly files: _angular_core.Signal<AXFileMediaItem[]>;
3785
3942
  readonly caption: _angular_core.Signal<string>;
3786
3943
  copy(): Promise<string>;
3787
3944
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileRendererComponent, never>;
@@ -3792,11 +3949,11 @@ declare class AXImageRendererComponent extends AXMessageRendererCopyHostComponen
3792
3949
  private readonly fileTypes;
3793
3950
  readonly message: _angular_core.InputSignal<AXMessage>;
3794
3951
  readonly rendererState: _angular_core.Signal<{
3795
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
3952
+ deliveryStatus: AXMessageStatus;
3796
3953
  contentState: "ready";
3797
3954
  }>;
3798
3955
  readonly payload: _angular_core.Signal<AXImagePayload>;
3799
- readonly images: _angular_core.Signal<_acorex_components_conversation2.AXImageMediaItem[]>;
3956
+ readonly images: _angular_core.Signal<AXImageMediaItem[]>;
3800
3957
  readonly caption: _angular_core.Signal<string>;
3801
3958
  copy(): Promise<string>;
3802
3959
  readonly gridModeClass: _angular_core.Signal<"ax-cnv-msg__grid--single" | "ax-cnv-msg__grid--dual" | "ax-cnv-msg__grid--multi">;
@@ -3808,7 +3965,7 @@ declare class AXLocationRendererComponent extends AXMessageRendererCopyHostCompo
3808
3965
  private readonly _contentState;
3809
3966
  readonly message: _angular_core.InputSignal<AXMessage>;
3810
3967
  readonly rendererState: _angular_core.Signal<{
3811
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
3968
+ deliveryStatus: AXMessageStatus;
3812
3969
  contentState: AXMessageRendererContentState;
3813
3970
  }>;
3814
3971
  readonly payload: _angular_core.Signal<AXLocationPayload>;
@@ -3834,7 +3991,7 @@ declare class AXStickerRendererComponent implements AXMessageRendererComponent {
3834
3991
  private readonly _contentState;
3835
3992
  readonly message: _angular_core.InputSignal<AXMessage>;
3836
3993
  readonly rendererState: _angular_core.Signal<{
3837
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
3994
+ deliveryStatus: AXMessageStatus;
3838
3995
  contentState: AXMessageRendererContentState;
3839
3996
  }>;
3840
3997
  readonly payload: _angular_core.Signal<AXStickerPayload>;
@@ -3853,7 +4010,7 @@ declare class AXSystemRendererComponent implements AXMessageRendererComponent {
3853
4010
  private readonly _contentState;
3854
4011
  readonly message: _angular_core.InputSignal<AXMessage>;
3855
4012
  readonly rendererState: _angular_core.Signal<{
3856
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
4013
+ deliveryStatus: AXMessageStatus;
3857
4014
  contentState: AXMessageRendererContentState;
3858
4015
  }>;
3859
4016
  readonly payload: _angular_core.Signal<AXSystemPayload>;
@@ -3868,7 +4025,7 @@ declare class AXTextRendererComponent extends AXMessageRendererCopyHostComponent
3868
4025
  private readonly _contentState;
3869
4026
  readonly message: _angular_core.InputSignal<AXMessage>;
3870
4027
  readonly rendererState: _angular_core.Signal<{
3871
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
4028
+ deliveryStatus: AXMessageStatus;
3872
4029
  contentState: AXMessageRendererContentState;
3873
4030
  }>;
3874
4031
  readonly searchQuery: _angular_core.Signal<string>;
@@ -3889,14 +4046,14 @@ declare class AXVideoRendererComponent extends AXMessageRendererCopyHostComponen
3889
4046
  private readonly activeVideoIndex;
3890
4047
  readonly message: _angular_core.InputSignal<AXMessage>;
3891
4048
  readonly rendererState: _angular_core.Signal<{
3892
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
4049
+ deliveryStatus: AXMessageStatus;
3893
4050
  contentState: "ready";
3894
4051
  }>;
3895
4052
  readonly isPlaying: _angular_core.WritableSignal<boolean>;
3896
4053
  readonly currentTime: _angular_core.WritableSignal<number>;
3897
4054
  readonly duration: _angular_core.WritableSignal<number>;
3898
4055
  readonly payload: _angular_core.Signal<AXVideoPayload>;
3899
- readonly videos: _angular_core.Signal<_acorex_components_conversation2.AXVideoMediaItem[]>;
4056
+ readonly videos: _angular_core.Signal<AXVideoMediaItem[]>;
3900
4057
  readonly caption: _angular_core.Signal<string>;
3901
4058
  copy(): Promise<string>;
3902
4059
  constructor();
@@ -3921,7 +4078,7 @@ declare class AXVoiceRendererComponent extends AXMessageRendererCopyHostComponen
3921
4078
  private readonly _contentState;
3922
4079
  readonly message: _angular_core.InputSignal<AXMessage>;
3923
4080
  readonly rendererState: _angular_core.Signal<{
3924
- deliveryStatus: _acorex_components_conversation2.AXMessageStatus;
4081
+ deliveryStatus: AXMessageStatus;
3925
4082
  contentState: AXMessageRendererContentState;
3926
4083
  }>;
3927
4084
  readonly isPlaying: _angular_core.WritableSignal<boolean>;
@@ -3968,7 +4125,7 @@ declare class AXMessageListComponent implements OnDestroy {
3968
4125
  private readonly toast;
3969
4126
  private readonly infoBarService;
3970
4127
  private readonly translation;
3971
- protected readonly config: Required<_acorex_components_conversation2.AXConversationConfig>;
4128
+ protected readonly config: Required<AXConversationConfig>;
3972
4129
  /**
3973
4130
  * Background for the message list scroll area from config, or the built-in soft gradient when unset/empty.
3974
4131
  * Set `messageListBackground` to `transparent` or `none` for a flat look.
@@ -4006,7 +4163,7 @@ declare class AXMessageListComponent implements OnDestroy {
4006
4163
  /** Show scroll to bottom button - use service */
4007
4164
  readonly showScrollButton: _angular_core.WritableSignal<boolean>;
4008
4165
  /** Active conversation */
4009
- readonly activeConversation: _angular_core.Signal<_acorex_components_conversation2.AXConversation>;
4166
+ readonly activeConversation: _angular_core.Signal<AXConversation>;
4010
4167
  /** Messages */
4011
4168
  readonly messages: _angular_core.Signal<AXMessage[]>;
4012
4169
  /** Message action event */
@@ -4015,7 +4172,7 @@ declare class AXMessageListComponent implements OnDestroy {
4015
4172
  action: string;
4016
4173
  }>;
4017
4174
  /** Current user from service */
4018
- readonly currentUser: _angular_core.Signal<_acorex_components_conversation2.AXParticipant>;
4175
+ readonly currentUser: _angular_core.Signal<AXParticipant>;
4019
4176
  /** Message grouped by date - use service */
4020
4177
  readonly messageGroups: _angular_core.Signal<{
4021
4178
  date: string;
@@ -4181,9 +4338,9 @@ declare class AXMessageListService {
4181
4338
  private readonly conversationService;
4182
4339
  private readonly config;
4183
4340
  private get registry();
4184
- readonly activeConversation: _angular_core.Signal<_acorex_components_conversation2.AXConversation>;
4341
+ readonly activeConversation: _angular_core.Signal<AXConversation>;
4185
4342
  readonly activeMessages: _angular_core.Signal<AXMessage[]>;
4186
- readonly currentUser: _angular_core.Signal<_acorex_components_conversation2.AXParticipant>;
4343
+ readonly currentUser: _angular_core.Signal<AXParticipant>;
4187
4344
  /** Initial message history load (conversation switch) */
4188
4345
  readonly loading: _angular_core.Signal<boolean>;
4189
4346
  /** Loading older messages (scroll-up pagination) */
@@ -4261,7 +4418,7 @@ declare class AXSidebarService {
4261
4418
 
4262
4419
  declare class AXSidebarComponent implements OnDestroy {
4263
4420
  readonly sidebar: AXSidebarService;
4264
- protected readonly config: Required<_acorex_components_conversation2.AXConversationConfig>;
4421
+ protected readonly config: Required<AXConversationConfig>;
4265
4422
  private readonly conversationService;
4266
4423
  private readonly popupService;
4267
4424
  private readonly translation;
@@ -4371,163 +4528,6 @@ declare class AXInfiniteScrollDirective {
4371
4528
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXInfiniteScrollDirective, "[axInfiniteScroll]", never, { "threshold": { "alias": "threshold"; "required": false; "isSignal": true; }; "edge": { "alias": "edge"; "required": false; "isSignal": true; }; "scrollDisabled": { "alias": "scrollDisabled"; "required": false; "isSignal": true; }; "cooldownMs": { "alias": "cooldownMs"; "required": false; "isSignal": true; }; }, { "scrollThreshold": "scrollThreshold"; }, never, never, true, never>;
4372
4529
  }
4373
4530
 
4374
- /**
4375
- * Conversation Configuration Interface
4376
- * Centralized configuration values to avoid magic numbers
4377
- */
4378
- /**
4379
- * Main configuration interface for the conversation component
4380
- */
4381
- interface AXConversationConfig {
4382
- /** Number of messages to load per page */
4383
- messagePageSize?: number;
4384
- /** Number of conversations to load per page */
4385
- conversationPageSize?: number;
4386
- /** Scroll threshold for detecting scroll events */
4387
- scrollThreshold?: number;
4388
- /** Infinite scroll threshold */
4389
- infiniteScrollThreshold?: number;
4390
- /** Typing indicator timeout in milliseconds */
4391
- typingIndicatorTimeout?: number;
4392
- /** Typing indicator throttle in milliseconds (for rate limiting) */
4393
- typingIndicatorThrottle?: number;
4394
- /** Message highlight duration in milliseconds */
4395
- messageHighlightDuration?: number;
4396
- /** Search debounce delay in milliseconds */
4397
- debounceSearch?: number;
4398
- /** Date separator inactivity fade delay in milliseconds */
4399
- /** Maximum messages per conversation */
4400
- maxMessagesPerConversation?: number;
4401
- /** Maximum total messages in store */
4402
- maxTotalMessages?: number;
4403
- /** Maximum cached conversations */
4404
- maxCachedConversations?: number;
4405
- /** Minimum sidebar width in pixels */
4406
- minSidebarWidth?: number;
4407
- /** Maximum sidebar width in pixels */
4408
- maxSidebarWidth?: number;
4409
- /** Default sidebar width in pixels */
4410
- defaultSidebarWidth?: number;
4411
- /** Filter cache size */
4412
- filterCacheSize?: number;
4413
- /** Maximum message length in characters */
4414
- maxMessageLength?: number;
4415
- /** Minimum message length in characters */
4416
- minMessageLength?: number;
4417
- /** Max attachments per message when a composer action omits `maxFiles`. */
4418
- maxFilesPerMessage?: number;
4419
- /** Threshold for marking messages as read (0.0 to 1.0, default: 0.3) */
4420
- messageReadThreshold?: number;
4421
- /**
4422
- * CSS `background` for the message list (`ax-conversation-message-list` area, all states: loading, empty, messages).
4423
- * Use full shorthand, or a bare `https://...` / `/path/to.png` (wrapped as `url(...)` with `center/cover`).
4424
- * Empty string = library default soft gradient. `transparent` or `none` = flat background.
4425
- */
4426
- messageListBackground?: string;
4427
- }
4428
-
4429
- /**
4430
- * Default Configuration Values
4431
- * Centralized defaults to avoid magic numbers throughout the codebase
4432
- */
4433
-
4434
- /**
4435
- * Default conversation configuration
4436
- * All values are explicitly defined here for easy maintenance and documentation
4437
- */
4438
- declare const AX_DEFAULT_CONVERSATION_CONFIG: Required<AXConversationConfig>;
4439
- /**
4440
- * Helper function to merge user config with defaults
4441
- * Properly handles array merging to avoid reference issues
4442
- * @param userConfig - User-provided configuration
4443
- * @returns Merged configuration with all required fields
4444
- */
4445
- declare function mergeWithDefaults(userConfig?: Partial<AXConversationConfig>): Required<AXConversationConfig>;
4446
-
4447
- /**
4448
- * Dependency Injection Tokens
4449
- * InjectionTokens for configuration and dependencies
4450
- */
4451
-
4452
- /**
4453
- * Configuration token for conversation component
4454
- * Uses centralized defaults from AX_DEFAULT_CONVERSATION_CONFIG
4455
- */
4456
- declare const CONVERSATION_CONFIG: InjectionToken<Required<AXConversationConfig>>;
4457
- /**
4458
- * Token for configuring AXErrorHandlerService
4459
- */
4460
- declare const ERROR_HANDLER_CONFIG: InjectionToken<Partial<AXErrorHandlerConfig>>;
4461
-
4462
- /**
4463
- * Registry Configuration Tokens
4464
- * Injection tokens for configuring default registry values
4465
- */
4466
-
4467
- /**
4468
- * Additional message renderers configuration
4469
- * Provide this token to add custom message renderers in addition to built-in ones
4470
- * Note: Built-in renderers (text, system, fallback) are registered by default; other types are provided via plugins/constants.
4471
- */
4472
- declare const DEFAULT_MESSAGE_RENDERERS: InjectionToken<AXMessageRenderer[]>;
4473
- /**
4474
- * Default message actions configuration
4475
- * Provide this token to override default message actions
4476
- */
4477
- declare const DEFAULT_MESSAGE_ACTIONS: InjectionToken<AXMessageAction[]>;
4478
- /**
4479
- * Default composer tabs configuration
4480
- * Provide this token to override default composer tabs (emoji, stickers, etc.)
4481
- */
4482
- declare const DEFAULT_COMPOSER_TABS: InjectionToken<AXComposerTab[]>;
4483
- /**
4484
- * Default composer actions configuration
4485
- * Provide this token to override default composer actions (attach, voice, etc.)
4486
- */
4487
- declare const DEFAULT_COMPOSER_ACTIONS: InjectionToken<AXComposerAction[]>;
4488
- /**
4489
- * Default conversation tabs configuration
4490
- * Provide this token to override default conversation tabs (all, private, groups, etc.)
4491
- */
4492
- declare const DEFAULT_CONVERSATION_TABS: InjectionToken<AXConversationTab[]>;
4493
- /**
4494
- * Default info bar actions configuration
4495
- * Provide this token to override default info bar actions (mute, archive, block, etc.)
4496
- */
4497
- declare const DEFAULT_INFO_BAR_ACTIONS: InjectionToken<AXInfoBarAction[]>;
4498
- /**
4499
- * Default conversation item actions configuration
4500
- * Provide this token to override default conversation item actions (mute, delete, archive, etc.)
4501
- */
4502
- declare const DEFAULT_CONVERSATION_ITEM_ACTIONS: InjectionToken<AXConversationItemAction[]>;
4503
- /**
4504
- * Registry configuration interface
4505
- */
4506
- interface AXRegistryConfiguration {
4507
- /**
4508
- * Additional message renderers to register (built-in renderers are automatic).
4509
- * Each {@link AXMessageRenderer} may include optional `composerActions` for co-located send UX.
4510
- */
4511
- messageRenderers?: AXMessageRenderer[];
4512
- /** Message actions to register by default */
4513
- messageActions?: AXMessageAction[];
4514
- /** Composer tabs to register by default */
4515
- composerTabs?: AXComposerTab[];
4516
- /** Composer actions to register by default */
4517
- composerActions?: AXComposerAction[];
4518
- /** Conversation tabs to register by default */
4519
- conversationTabs?: AXConversationTab[];
4520
- /** Info bar actions to register by default */
4521
- infoBarActions?: AXInfoBarAction[];
4522
- /** Conversation item actions to register by default */
4523
- conversationItemActions?: AXConversationItemAction[];
4524
- }
4525
- /**
4526
- * Complete registry configuration token
4527
- * Provide this for comprehensive registry configuration
4528
- */
4529
- declare const REGISTRY_CONFIG: InjectionToken<AXRegistryConfiguration>;
4530
-
4531
4531
  /**
4532
4532
  * IndexedDB Storage Wrapper
4533
4533
  * Provides persistent storage for conversation data
@@ -5008,8 +5008,8 @@ declare class AXAudioPickerComponent implements OnDestroy {
5008
5008
  readonly catalogFileType: "conversation-audio";
5009
5009
  readonly audioFiles: _angular_core.WritableSignal<AudioFile[]>;
5010
5010
  readonly isDragging: _angular_core.WritableSignal<boolean>;
5011
- readonly typeIconClass: "fa-light fa-music text-amber-500";
5012
- readonly emptyIconClass: _angular_core.Signal<"fa-light fa-music text-amber-500" | "fa-light fa-cloud-arrow-up">;
5011
+ readonly typeIconClass: "fa-light fa-music ax-text-amber-500";
5012
+ readonly emptyIconClass: _angular_core.Signal<"fa-light fa-music ax-text-amber-500" | "fa-light fa-cloud-arrow-up">;
5013
5013
  private catalogFileTypeDef?;
5014
5014
  caption: string;
5015
5015
  readonly allowMultiple: _angular_core.Signal<boolean>;
@@ -5110,7 +5110,7 @@ declare class AXFilePickerComponent implements OnDestroy {
5110
5110
  readonly files: _angular_core.WritableSignal<AttachedFile[]>;
5111
5111
  readonly isDragging: _angular_core.WritableSignal<boolean>;
5112
5112
  readonly isUploading: _angular_core.WritableSignal<boolean>;
5113
- readonly emptyIconClass: _angular_core.Signal<"fa-light fa-file text-neutral-500" | "fa-light fa-cloud-arrow-up">;
5113
+ readonly emptyIconClass: _angular_core.Signal<"fa-light fa-file ax-text-neutral-500" | "fa-light fa-cloud-arrow-up">;
5114
5114
  private catalogFileTypeDef?;
5115
5115
  caption: string;
5116
5116
  constructor();
@@ -5161,7 +5161,7 @@ declare class AXImagePickerComponent implements OnDestroy {
5161
5161
  readonly __popup__: _angular_core.InputSignal<AXPopupRef<any>>;
5162
5162
  readonly images: _angular_core.WritableSignal<ImageFile[]>;
5163
5163
  readonly isDragging: _angular_core.WritableSignal<boolean>;
5164
- readonly emptyIconClass: _angular_core.Signal<"fa-light fa-image text-purple-500" | "fa-light fa-cloud-arrow-up">;
5164
+ readonly emptyIconClass: _angular_core.Signal<"fa-light fa-image ax-text-purple-500" | "fa-light fa-cloud-arrow-up">;
5165
5165
  caption: string;
5166
5166
  readonly allowMultiple: _angular_core.Signal<boolean>;
5167
5167
  private imageFileType?;
@@ -5442,7 +5442,7 @@ declare class AXConversationInfoPanelComponent extends AXClosableComponent imple
5442
5442
  value: string;
5443
5443
  }>;
5444
5444
  /** Get filtered members based on search */
5445
- get filteredMembers(): _acorex_components_conversation2.AXParticipant[];
5445
+ get filteredMembers(): AXParticipant[];
5446
5446
  /** Handle tab change */
5447
5447
  onTabChange(event: any): void;
5448
5448
  ngOnInit(): void;
@@ -5498,7 +5498,7 @@ declare class AXInfoBarSearchComponent {
5498
5498
  /** Current index from service */
5499
5499
  readonly currentIndex: _angular_core.Signal<number>;
5500
5500
  /** Messages from conversation */
5501
- readonly messages: _angular_core.Signal<_acorex_components_conversation2.AXMessage[]>;
5501
+ readonly messages: _angular_core.Signal<AXMessage[]>;
5502
5502
  private scrollTimer?;
5503
5503
  constructor();
5504
5504
  /** Handle search input change */