@acorex/components 21.0.1-next.3 → 21.0.1-next.30

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 (255) hide show
  1. package/accordion/index.d.ts +0 -1
  2. package/action-sheet/index.d.ts +116 -34
  3. package/button-group/index.d.ts +6 -4
  4. package/chips/index.d.ts +3 -8
  5. package/collapse/index.d.ts +4 -6
  6. package/command/index.d.ts +8 -1
  7. package/conversation2/README.md +71 -31
  8. package/conversation2/index.d.ts +36 -35
  9. package/data-table/index.d.ts +4 -253
  10. package/datetime-picker/index.d.ts +1 -1
  11. package/dialog/index.d.ts +18 -14
  12. package/dropdown/index.d.ts +3 -8
  13. package/fesm2022/acorex-components-accordion.mjs +16 -21
  14. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  15. package/fesm2022/acorex-components-action-sheet.mjs +284 -118
  16. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  17. package/fesm2022/acorex-components-alert.mjs +13 -13
  18. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  19. package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
  20. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  21. package/fesm2022/acorex-components-audio-wave.mjs +11 -10
  22. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  23. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  24. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  25. package/fesm2022/acorex-components-avatar.mjs +12 -12
  26. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  27. package/fesm2022/acorex-components-badge.mjs +9 -9
  28. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  29. package/fesm2022/acorex-components-bottom-navigation.mjs +11 -11
  30. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  31. package/fesm2022/acorex-components-breadcrumbs.mjs +11 -11
  32. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  33. package/fesm2022/acorex-components-button-group.mjs +23 -19
  34. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  35. package/fesm2022/acorex-components-button.mjs +18 -18
  36. package/fesm2022/acorex-components-button.mjs.map +1 -1
  37. package/fesm2022/acorex-components-calendar.mjs +17 -17
  38. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  39. package/fesm2022/acorex-components-check-box.mjs +10 -10
  40. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  41. package/fesm2022/acorex-components-chips.mjs +12 -14
  42. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  43. package/fesm2022/acorex-components-circular-progress.mjs +12 -10
  44. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  45. package/fesm2022/acorex-components-code-editor.mjs +10 -10
  46. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  47. package/fesm2022/acorex-components-collapse.mjs +22 -19
  48. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  49. package/fesm2022/acorex-components-color-box.mjs +9 -9
  50. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  51. package/fesm2022/acorex-components-color-palette.mjs +30 -30
  52. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  53. package/fesm2022/acorex-components-command.mjs +17 -11
  54. package/fesm2022/acorex-components-command.mjs.map +1 -1
  55. package/fesm2022/acorex-components-comment.mjs +32 -32
  56. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  57. package/fesm2022/acorex-components-conversation.mjs +51 -51
  58. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  59. package/fesm2022/acorex-components-conversation2.mjs +309 -303
  60. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  61. package/fesm2022/acorex-components-cron-job.mjs +46 -46
  62. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  63. package/fesm2022/acorex-components-data-list.mjs +3 -3
  64. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  65. package/fesm2022/acorex-components-data-pager.mjs +33 -33
  66. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  67. package/fesm2022/acorex-components-data-table.mjs +50 -486
  68. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  69. package/fesm2022/acorex-components-datetime-box.mjs +9 -9
  70. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  71. package/fesm2022/acorex-components-datetime-input.mjs +9 -9
  72. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  73. package/fesm2022/acorex-components-datetime-picker.mjs +40 -38
  74. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  75. package/fesm2022/acorex-components-decorators.mjs +43 -36
  76. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  77. package/fesm2022/acorex-components-dialog.mjs +75 -54
  78. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  79. package/fesm2022/acorex-components-drawer-legacy.mjs +13 -13
  80. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -1
  81. package/fesm2022/acorex-components-drawer.mjs +15 -16
  82. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  83. package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
  84. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  85. package/fesm2022/acorex-components-dropdown.mjs +25 -28
  86. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  87. package/fesm2022/acorex-components-editor.mjs +11 -11
  88. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  89. package/fesm2022/acorex-components-file-explorer.mjs +25 -25
  90. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  91. package/fesm2022/acorex-components-flow-chart.mjs +16 -16
  92. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  93. package/fesm2022/acorex-components-form.mjs +48 -42
  94. package/fesm2022/acorex-components-form.mjs.map +1 -1
  95. package/fesm2022/acorex-components-grid-layout-builder.mjs +13 -14
  96. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  97. package/fesm2022/acorex-components-image-editor.mjs +44 -44
  98. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  99. package/fesm2022/acorex-components-image.mjs +9 -9
  100. package/fesm2022/acorex-components-image.mjs.map +1 -1
  101. package/fesm2022/acorex-components-json-viewer.mjs +8 -8
  102. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  103. package/fesm2022/acorex-components-kanban.mjs +140 -13
  104. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  105. package/fesm2022/acorex-components-kbd.mjs +29 -11
  106. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  107. package/fesm2022/acorex-components-label.mjs +9 -9
  108. package/fesm2022/acorex-components-label.mjs.map +1 -1
  109. package/fesm2022/acorex-components-list.mjs +9 -9
  110. package/fesm2022/acorex-components-list.mjs.map +1 -1
  111. package/fesm2022/acorex-components-loading-dialog.mjs +82 -45
  112. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  113. package/fesm2022/acorex-components-loading.mjs +23 -23
  114. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  115. package/fesm2022/acorex-components-map.mjs +14 -14
  116. package/fesm2022/acorex-components-map.mjs.map +1 -1
  117. package/fesm2022/acorex-components-media-viewer.mjs +72 -54
  118. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  119. package/fesm2022/acorex-components-menu.mjs +43 -22
  120. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  121. package/fesm2022/{acorex-components-modal-acorex-components-modal-CXXcFToK.mjs → acorex-components-modal-acorex-components-modal-BajlPo_n.mjs} +47 -23
  122. package/fesm2022/acorex-components-modal-acorex-components-modal-BajlPo_n.mjs.map +1 -0
  123. package/fesm2022/{acorex-components-modal-modal-content.component-B4rhHeEz.mjs → acorex-components-modal-modal-content.component-BVrBX4Qf.mjs} +9 -7
  124. package/fesm2022/acorex-components-modal-modal-content.component-BVrBX4Qf.mjs.map +1 -0
  125. package/fesm2022/acorex-components-modal.mjs +1 -1
  126. package/fesm2022/acorex-components-navbar.mjs +9 -9
  127. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  128. package/fesm2022/acorex-components-notification.mjs +381 -260
  129. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  130. package/fesm2022/acorex-components-number-box-legacy.mjs +9 -9
  131. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -1
  132. package/fesm2022/acorex-components-number-box.mjs +9 -9
  133. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  134. package/fesm2022/acorex-components-otp.mjs +9 -9
  135. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  136. package/fesm2022/acorex-components-page.mjs +10 -10
  137. package/fesm2022/acorex-components-page.mjs.map +1 -1
  138. package/fesm2022/acorex-components-paint.mjs +34 -39
  139. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  140. package/fesm2022/acorex-components-password-box.mjs +13 -13
  141. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  142. package/fesm2022/acorex-components-pdf-reader.mjs +8 -8
  143. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  144. package/fesm2022/acorex-components-phone-box.mjs +88 -47
  145. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  146. package/fesm2022/acorex-components-picker.mjs +19 -18
  147. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  148. package/fesm2022/acorex-components-popover.mjs +213 -197
  149. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  150. package/fesm2022/acorex-components-popup.mjs +308 -113
  151. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  152. package/fesm2022/acorex-components-progress-bar.mjs +11 -9
  153. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  154. package/fesm2022/acorex-components-qrcode.mjs +9 -9
  155. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  156. package/fesm2022/acorex-components-query-builder.mjs +8 -8
  157. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  158. package/fesm2022/acorex-components-radio.mjs +9 -9
  159. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  160. package/fesm2022/acorex-components-rail-navigation.mjs +38 -36
  161. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  162. package/fesm2022/acorex-components-range-slider.mjs +10 -10
  163. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  164. package/fesm2022/acorex-components-rate-picker.mjs +20 -35
  165. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  166. package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
  167. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  168. package/fesm2022/acorex-components-result.mjs +8 -8
  169. package/fesm2022/acorex-components-result.mjs.map +1 -1
  170. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  171. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  172. package/fesm2022/acorex-components-rrule.mjs +9 -9
  173. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  174. package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
  175. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  176. package/fesm2022/acorex-components-scheduler.mjs +43 -43
  177. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  178. package/fesm2022/acorex-components-scss.mjs +4 -4
  179. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  180. package/fesm2022/acorex-components-search-box.mjs +16 -10
  181. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  182. package/fesm2022/acorex-components-select-box.mjs +11 -9
  183. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  184. package/fesm2022/acorex-components-selection-list-2.mjs +11 -11
  185. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  186. package/fesm2022/acorex-components-selection-list.mjs +9 -9
  187. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  188. package/fesm2022/acorex-components-side-menu.mjs +74 -25
  189. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  190. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  191. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  192. package/fesm2022/acorex-components-slider.mjs +12 -12
  193. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  194. package/fesm2022/acorex-components-sliding-item.mjs +14 -14
  195. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  196. package/fesm2022/acorex-components-step-wizard.mjs +14 -14
  197. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  198. package/fesm2022/acorex-components-switch.mjs +14 -14
  199. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  200. package/fesm2022/acorex-components-tabs.mjs +15 -15
  201. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  202. package/fesm2022/acorex-components-tag-box.mjs +9 -9
  203. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  204. package/fesm2022/acorex-components-tag.mjs +9 -9
  205. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  206. package/fesm2022/acorex-components-text-area.mjs +9 -9
  207. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  208. package/fesm2022/acorex-components-text-box.mjs +14 -12
  209. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  210. package/fesm2022/acorex-components-time-duration.mjs +18 -20
  211. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  212. package/fesm2022/acorex-components-time-line.mjs +12 -12
  213. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  214. package/fesm2022/acorex-components-toast.mjs +239 -131
  215. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  216. package/fesm2022/acorex-components-toolbar.mjs +8 -8
  217. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  218. package/fesm2022/acorex-components-tooltip.mjs +67 -67
  219. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  220. package/fesm2022/acorex-components-tree-view-legacy.mjs +16 -12
  221. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -1
  222. package/fesm2022/acorex-components-tree-view.mjs +26 -11
  223. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  224. package/fesm2022/acorex-components-uploader.mjs +16 -16
  225. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  226. package/fesm2022/acorex-components-video-player.mjs +8 -8
  227. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  228. package/fesm2022/acorex-components-wysiwyg.mjs +42 -42
  229. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  230. package/fesm2022/acorex-components.mjs.map +1 -1
  231. package/form/index.d.ts +2 -1
  232. package/grid-layout-builder/index.d.ts +1 -2
  233. package/kanban/index.d.ts +62 -4
  234. package/kbd/index.d.ts +13 -7
  235. package/loading/index.d.ts +1 -1
  236. package/loading-dialog/index.d.ts +31 -15
  237. package/media-viewer/index.d.ts +2 -1
  238. package/menu/index.d.ts +4 -0
  239. package/modal/index.d.ts +7 -0
  240. package/notification/index.d.ts +47 -32
  241. package/package.json +3 -3
  242. package/paint/index.d.ts +1 -6
  243. package/phone-box/index.d.ts +12 -7
  244. package/popover/index.d.ts +32 -30
  245. package/popup/index.d.ts +100 -27
  246. package/rate-picker/index.d.ts +5 -15
  247. package/side-menu/index.d.ts +9 -2
  248. package/slider/index.d.ts +2 -2
  249. package/time-duration/index.d.ts +0 -1
  250. package/toast/index.d.ts +24 -18
  251. package/tooltip/index.d.ts +4 -9
  252. package/tree-view/index.d.ts +11 -0
  253. package/tree-view-legacy/index.d.ts +1 -0
  254. package/fesm2022/acorex-components-modal-acorex-components-modal-CXXcFToK.mjs.map +0 -1
  255. package/fesm2022/acorex-components-modal-modal-content.component-B4rhHeEz.mjs.map +0 -1
@@ -10,7 +10,6 @@ declare class AXAccordionGroupComponent {
10
10
  activeIndex: _angular_core.ModelSignal<number | number[]>;
11
11
  look: _angular_core.InputSignal<string>;
12
12
  collapsedOnItemClick: _angular_core.InputSignal<boolean>;
13
- private get __hostClass();
14
13
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXAccordionGroupComponent, never>;
15
14
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXAccordionGroupComponent, "ax-accordion-group", never, { "accordion": { "alias": "accordion"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "collapsedOnItemClick": { "alias": "collapsedOnItemClick"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, ["content"], ["ax-accordion-item"], true, never>;
16
15
  }
@@ -1,7 +1,8 @@
1
- import { AXStyleColorType, MXBaseComponent } from '@acorex/cdk/common';
2
- import { ComponentType, Portal, CdkPortalOutletAttachedRef } from '@angular/cdk/portal';
3
- import * as i0 from '@angular/core';
4
- import { TemplateRef, OnInit, OnDestroy } from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef, Type, OnInit, AfterViewInit, OnDestroy } from '@angular/core';
3
+ import { AXStyleColorType, AXComponentCloseEvent, MXBaseComponent } from '@acorex/cdk/common';
4
+ import { AXOverlayRef } from '@acorex/cdk/overlay';
5
+ import { AXComponentInputs, AXComponentType } from '@acorex/core/components';
5
6
  import * as rxjs from 'rxjs';
6
7
  import { Subject } from 'rxjs';
7
8
 
@@ -21,36 +22,90 @@ interface AXActionSheetItem {
21
22
  title?: string;
22
23
  };
23
24
  }
24
- type AXActionSheetContentType = TemplateRef<unknown> | ComponentType<unknown>;
25
+ type AXActionSheetContentType = TemplateRef<unknown> | Type<unknown>;
25
26
  interface AXActionSheetConfig {
26
27
  title?: string;
27
28
  subTitle?: string;
28
29
  closeButton?: boolean;
29
30
  header?: boolean;
31
+ /** @deprecated Use `inputs` instead to pass data to the action sheet content component. */
30
32
  data?: unknown;
33
+ /** Input values to pass to the content component */
34
+ inputs?: unknown;
31
35
  closeOnBackdropClick?: boolean;
32
36
  items?: AXActionSheetItem[];
33
37
  content?: AXActionSheetContentType;
34
38
  draggable?: boolean;
35
39
  dragUp?: boolean;
36
40
  }
41
+ /**
42
+ * Reference to an open action sheet, providing methods to interact with it.
43
+ */
44
+ interface AXActionSheetRef<TResult = unknown> {
45
+ /** Closes the action sheet with optional result data */
46
+ close: (data?: TResult) => void;
47
+ /** Sets input values on the content component */
48
+ setInputs: (values: AXComponentInputs) => void;
49
+ /** Observable that emits when the action sheet is closed */
50
+ onClose: Subject<TResult>;
51
+ }
52
+ /**
53
+ * Base class for components that are displayed inside an action sheet.
54
+ * Extend this class to get access to the action sheet reference and helper methods.
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * @Component({...})
59
+ * export class MyActionSheetContent extends AXActionSheetComponentBase {
60
+ * save() {
61
+ * this.close({ saved: true });
62
+ * }
63
+ * }
64
+ * ```
65
+ */
66
+ declare abstract class AXActionSheetComponentBase {
67
+ /** Reference to the parent action sheet */
68
+ __actionSheet__: _angular_core.InputSignal<AXActionSheetRef<unknown>>;
69
+ /**
70
+ * Closes the action sheet with optional result data.
71
+ * @param data - Optional data to pass to the close handler
72
+ */
73
+ close(data?: any): void;
74
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXActionSheetComponentBase, never>;
75
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXActionSheetComponentBase, never, never, { "__actionSheet__": { "alias": "__actionSheet__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
76
+ }
37
77
  interface AXActionSheetEvent {
38
- dialogRef: any;
78
+ overlayRef?: AXOverlayRef<unknown>;
39
79
  nativeEvent?: Event;
40
80
  isUserInteraction: boolean;
41
81
  data: {
42
82
  state: 'open' | 'close' | 'dragStart' | 'dragEnd' | 'fullScreen' | 'normalSize';
43
83
  };
44
84
  }
85
+ /**
86
+ * @internal
87
+ * Internal reference used by action sheet service to manage overlay instances
88
+ */
89
+ interface AXActionSheetInternalRef {
90
+ overlayRef: AXOverlayRef<unknown>;
91
+ close: (result?: AXComponentCloseEvent) => void;
92
+ }
45
93
 
46
94
  /**
47
95
  * A component for displaying an action sheet, which is a menu that slides up from the bottom of the screen.
48
96
  *
49
97
  * @category Components
50
98
  */
51
- declare class AXActionSheetComponent extends MXBaseComponent implements OnInit, OnDestroy {
52
- protected data: AXActionSheetConfig;
53
- private dialogRef;
99
+ declare class AXActionSheetComponent extends MXBaseComponent implements OnInit, AfterViewInit, OnDestroy {
100
+ /** Action sheet configuration data */
101
+ data: _angular_core.InputSignal<AXActionSheetConfig>;
102
+ /** @internal Callback function to close the action sheet */
103
+ onClose: _angular_core.InputSignal<(result?: AXComponentCloseEvent) => void>;
104
+ /** @internal Overlay reference for event tracking */
105
+ overlayRef: _angular_core.InputSignal<AXOverlayRef<unknown>>;
106
+ /** @internal Reference to the action sheet for content components */
107
+ __actionSheetRef__: _angular_core.InputSignal<AXActionSheetRef<unknown>>;
108
+ private contentContainerRef;
54
109
  private document;
55
110
  private platformID;
56
111
  private renderer;
@@ -68,22 +123,42 @@ declare class AXActionSheetComponent extends MXBaseComponent implements OnInit,
68
123
  /**
69
124
  * @ignore
70
125
  */
71
- protected _selectedPortal: Portal<any>;
126
+ private _componentRef;
127
+ /** Template content if data.content is a TemplateRef */
128
+ protected templateContent: _angular_core.Signal<TemplateRef<unknown>>;
129
+ /** Component content if data.content is a component Type */
130
+ protected componentContent: _angular_core.Signal<AXComponentType<unknown>>;
131
+ /** Template context for ngTemplateOutlet */
132
+ protected templateContext: _angular_core.Signal<{
133
+ $implicit: AXActionSheetConfig;
134
+ ref: AXActionSheetComponent;
135
+ }>;
136
+ /** Whether content has been rendered (for component content) */
137
+ protected isContentRendered: _angular_core.WritableSignal<boolean>;
72
138
  /**
73
139
  * @ignore
74
140
  */
75
- private _componentRef;
141
+ ngOnInit(): void;
76
142
  /**
77
143
  * @ignore
78
144
  */
79
- ngOnInit(): void;
145
+ ngAfterViewInit(): void;
146
+ /**
147
+ * Renders the component content if provided.
148
+ * Uses ViewContainerRef to create the component and properly set inputs.
149
+ */
150
+ private renderComponentContent;
151
+ /**
152
+ * Sets input values on the content component.
153
+ * @param values - Object containing input values to set
154
+ */
155
+ setContentInputs(values: AXComponentInputs): void;
80
156
  ngOnDestroy(): void;
81
157
  protected handleMouseDown(e: MouseEvent): void;
82
158
  protected handleTouchDown(e: TouchEvent): void;
83
159
  private handleDown;
84
160
  private snapToFinalPosition;
85
161
  private heightCalculator;
86
- protected handleAttched(ref: CdkPortalOutletAttachedRef): void;
87
162
  /**
88
163
  * Handles click events on action sheet items.
89
164
  * This method is called when a user clicks on an action sheet item. It closes the action sheet
@@ -104,27 +179,33 @@ declare class AXActionSheetComponent extends MXBaseComponent implements OnInit,
104
179
  * This affects how the action sheet handles accessibility and event tracking.
105
180
  * @returns void
106
181
  */
107
- close(e?: any, isUserInteraction?: boolean): void;
182
+ close(e?: unknown, isUserInteraction?: boolean): void;
108
183
  /**
109
184
  * @ignore
110
185
  */
111
186
  protected onKeydownHandler(): void;
112
- static ɵfac: i0.ɵɵFactoryDeclaration<AXActionSheetComponent, never>;
113
- static ɵcmp: i0.ɵɵComponentDeclaration<AXActionSheetComponent, "ax-action-sheet", never, {}, {}, never, never, true, never>;
187
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXActionSheetComponent, never>;
188
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXActionSheetComponent, "ax-action-sheet", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "onClose": { "alias": "onClose"; "required": false; "isSignal": true; }; "overlayRef": { "alias": "overlayRef"; "required": false; "isSignal": true; }; "__actionSheetRef__": { "alias": "__actionSheetRef__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
114
189
  }
115
190
 
116
191
  declare class AXActionSheetModule {
117
- static ɵfac: i0.ɵɵFactoryDeclaration<AXActionSheetModule, never>;
118
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXActionSheetModule, never, [typeof AXActionSheetComponent], [typeof AXActionSheetComponent]>;
119
- static ɵinj: i0.ɵɵInjectorDeclaration<AXActionSheetModule>;
192
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXActionSheetModule, never>;
193
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXActionSheetModule, never, [typeof AXActionSheetComponent], [typeof AXActionSheetComponent]>;
194
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXActionSheetModule>;
120
195
  }
121
196
 
122
- interface AXActionSheetDialogRef {
123
- close: (e?: any) => void;
124
- closed: Subject<any>;
197
+ /**
198
+ * @deprecated Use `AXActionSheetRef` instead
199
+ */
200
+ interface AXActionSheetDialogRef<TResult = unknown> {
201
+ close: (e?: TResult) => void;
202
+ setInputs: (values: AXComponentInputs) => void;
203
+ closed: Subject<{
204
+ data?: TResult;
205
+ }>;
125
206
  }
126
207
  declare class AXActionSheetService {
127
- private dialog;
208
+ private overlayService;
128
209
  private readonly actionSheetEvent;
129
210
  actionSheetEvent$: rxjs.Observable<AXActionSheetEvent>;
130
211
  /**
@@ -138,23 +219,24 @@ declare class AXActionSheetService {
138
219
  * @param isUserInteraction - Whether the action sheet is opened by user interaction (default: true).
139
220
  * This affects how the action sheet handles accessibility and focus management.
140
221
  * @returns A promise that resolves to a dialog reference containing methods to control the action sheet.
141
- * The reference includes methods like close() and a closed observable for tracking dialog state.
222
+ * The reference includes methods like close(), setInputs() and a closed observable for tracking dialog state.
142
223
  * @example
143
224
  * ```typescript
144
225
  * const dialogRef = await actionSheetService.open({
145
226
  * title: 'Choose an option',
146
- * items: [
147
- * { text: 'Option 1', value: 'opt1' },
148
- * { text: 'Option 2', value: 'opt2' }
149
- * ]
227
+ * content: MyCustomComponent,
228
+ * inputs: { userId: 123, userName: 'John' }
150
229
  * });
151
230
  *
231
+ * // Update inputs dynamically
232
+ * dialogRef.setInputs({ userName: 'Jane' });
233
+ *
152
234
  * dialogRef.closed.subscribe(result => {
153
235
  * console.log('Action sheet closed with:', result.data);
154
236
  * });
155
237
  * ```
156
238
  */
157
- open(config: AXActionSheetConfig, isUserInteraction?: boolean): Promise<AXActionSheetDialogRef>;
239
+ open<TResult = unknown>(config: AXActionSheetConfig, isUserInteraction?: boolean): Promise<AXActionSheetRef<TResult>>;
158
240
  /**
159
241
  * Sets the current state of action sheet events.
160
242
  * This method is used internally to track action sheet lifecycle events such as open, close,
@@ -162,13 +244,13 @@ declare class AXActionSheetService {
162
244
  * observable for external subscribers to monitor action sheet state changes.
163
245
  *
164
246
  * @param event - The action sheet event to emit. Contains information about the event type,
165
- * associated data, user interaction status, and dialog reference.
247
+ * associated data, user interaction status, and overlay reference.
166
248
  * @returns void
167
249
  */
168
250
  setActionSheetEventState(event: AXActionSheetEvent): void;
169
- static ɵfac: i0.ɵɵFactoryDeclaration<AXActionSheetService, never>;
170
- static ɵprov: i0.ɵɵInjectableDeclaration<AXActionSheetService>;
251
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXActionSheetService, never>;
252
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXActionSheetService>;
171
253
  }
172
254
 
173
- export { AXActionSheetComponent, AXActionSheetModule, AXActionSheetService };
174
- export type { AXActionSheetConfig, AXActionSheetContentType, AXActionSheetDialogRef, AXActionSheetEvent, AXActionSheetItem };
255
+ export { AXActionSheetComponent, AXActionSheetComponentBase, AXActionSheetModule, AXActionSheetService };
256
+ export type { AXActionSheetConfig, AXActionSheetContentType, AXActionSheetDialogRef, AXActionSheetEvent, AXActionSheetInternalRef, AXActionSheetItem, AXActionSheetRef };
@@ -1,7 +1,7 @@
1
- import * as polytype from 'polytype';
2
- import { MXInteractiveComponent, MXColorLookComponent, AXClickEvent, AXSelectionMode, AXStyleColorType, MXColorComponent } from '@acorex/cdk/common';
3
1
  import * as i0 from '@angular/core';
4
2
  import { EventEmitter } from '@angular/core';
3
+ import * as polytype from 'polytype';
4
+ import { MXInteractiveComponent, MXColorLookComponent, AXClickEvent, AXSelectionMode, AXStyleColorType, MXColorComponent } from '@acorex/cdk/common';
5
5
 
6
6
  declare const AXButtonGroupComponent_base: polytype.Polytype.ClusteredConstructor<[typeof MXInteractiveComponent, typeof MXColorLookComponent]>;
7
7
  /**
@@ -12,6 +12,7 @@ declare const AXButtonGroupComponent_base: polytype.Polytype.ClusteredConstructo
12
12
  declare class AXButtonGroupComponent extends AXButtonGroupComponent_base {
13
13
  #private;
14
14
  readonly fitParent: i0.InputSignal<boolean>;
15
+ readonly customClass: i0.InputSignal<string>;
15
16
  /**
16
17
  * Fires when any button in the group is clicked.
17
18
  *
@@ -82,7 +83,7 @@ declare class AXButtonGroupComponent extends AXButtonGroupComponent_base {
82
83
  */
83
84
  private __hostClick;
84
85
  static ɵfac: i0.ɵɵFactoryDeclaration<AXButtonGroupComponent, never>;
85
- static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupComponent, "ax-button-group", never, { "disabled": { "alias": "disabled"; "required": false; }; "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "fitParent": { "alias": "fitParent"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "lookChange": "lookChange"; "colorChange": "colorChange"; "disabledChange": "disabledChange"; "onClick": "onClick"; "selectionChange": "selectionChange"; "selectedButtonChange": "selectedButtonChange"; }, ["_contentButtons"], ["ax-button-group-item"], true, never>;
86
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupComponent, "ax-button-group", never, { "disabled": { "alias": "disabled"; "required": false; }; "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "fitParent": { "alias": "fitParent"; "required": false; "isSignal": true; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "lookChange": "lookChange"; "colorChange": "colorChange"; "disabledChange": "disabledChange"; "onClick": "onClick"; "selectionChange": "selectionChange"; "selectedButtonChange": "selectedButtonChange"; }, ["_contentButtons"], ["ax-button-group-item"], true, never>;
86
87
  }
87
88
 
88
89
  interface AXButtonItemListItem {
@@ -109,6 +110,7 @@ declare class AXButtonGroupItemComponent extends AXButtonGroupItemComponent_base
109
110
  * @ignore
110
111
  */
111
112
  private _selected;
113
+ readonly customClass: i0.ModelSignal<string>;
112
114
  /**
113
115
  * Indicates whether the button item is selected.
114
116
  *
@@ -157,7 +159,7 @@ declare class AXButtonGroupItemComponent extends AXButtonGroupItemComponent_base
157
159
  */
158
160
  tabindex: string;
159
161
  static ɵfac: i0.ɵɵFactoryDeclaration<AXButtonGroupItemComponent, never>;
160
- static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupItemComponent, "ax-button-group-item", never, { "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "divided": { "alias": "divided"; "required": false; }; "data": { "alias": "data"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "onClick": "onClick"; "onFocus": "onFocus"; "onBlur": "onBlur"; "disabledChange": "disabledChange"; }, never, ["*"], true, never>;
162
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupItemComponent, "ax-button-group-item", never, { "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; }; "divided": { "alias": "divided"; "required": false; }; "data": { "alias": "data"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "onClick": "onClick"; "onFocus": "onFocus"; "onBlur": "onBlur"; "disabledChange": "disabledChange"; "customClass": "classChange"; }, never, ["*"], true, never>;
161
163
  }
162
164
 
163
165
  declare class AXButtonGroupModule {
package/chips/index.d.ts CHANGED
@@ -1,29 +1,25 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import * as i1 from '@acorex/cdk/common';
3
- import { AXStyleLookType, AXStyleSizeType, MXColorComponent } from '@acorex/cdk/common';
3
+ import { MXColorLookComponent } from '@acorex/cdk/common';
4
4
 
5
- type AXChipsLookType = Extract<AXStyleLookType, 'solid' | 'outline' | 'twotone'>;
6
- type AXChipsSizeType = Exclude<AXStyleSizeType, 'ax-xs' | 'ax-xl'>;
7
5
  /**
8
6
  * A component for displaying and managing a set of chips.
9
7
  *
10
8
  * @category Components
11
9
  */
12
- declare class AXChipsComponent extends MXColorComponent {
10
+ declare class AXChipsComponent extends MXColorLookComponent {
13
11
  /**
14
12
  * The text displayed on the chips.
15
13
  *
16
14
  * @defaultValue ''
17
15
  */
18
16
  text: i0.ModelSignal<string>;
19
- look: i0.ModelSignal<AXChipsLookType>;
20
- size: i0.ModelSignal<AXChipsSizeType>;
21
17
  /**
22
18
  * @ignore
23
19
  */
24
20
  private get __hostClass();
25
21
  static ɵfac: i0.ɵɵFactoryDeclaration<AXChipsComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<AXChipsComponent, "ax-chips", never, { "tabIndex": { "alias": "tabIndex"; "required": false; }; "color": { "alias": "color"; "required": false; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "text": "textChange"; "look": "lookChange"; "size": "sizeChange"; }, never, ["ax-prefix", "ax-suffix"], true, [{ directive: typeof i1.AXRippleDirective; inputs: {}; outputs: {}; }]>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXChipsComponent, "ax-chips", never, { "tabIndex": { "alias": "tabIndex"; "required": false; }; "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; }, { "text": "textChange"; }, never, ["ax-prefix", "ax-suffix"], true, [{ directive: typeof i1.AXRippleDirective; inputs: {}; outputs: {}; }]>;
27
23
  }
28
24
 
29
25
  declare class AXChipsModule {
@@ -33,4 +29,3 @@ declare class AXChipsModule {
33
29
  }
34
30
 
35
31
  export { AXChipsComponent, AXChipsModule };
36
- export type { AXChipsLookType, AXChipsSizeType };
@@ -5,9 +5,8 @@ import { AfterViewInit, OnDestroy, EventEmitter, TemplateRef } from '@angular/co
5
5
 
6
6
  declare const AXCollapseGroupComponent_base: polytype.Polytype.ClusteredConstructor<[typeof MXBaseComponent, typeof MXLookComponent]>;
7
7
  /**
8
- * Container for collapsible items with configurable styling.
9
- *
10
- * @category Components
8
+ * @deprecated Use `accordion` instead.
9
+ * This component deprecated and no longer support.
11
10
  */
12
11
  declare class AXCollapseGroupComponent extends AXCollapseGroupComponent_base implements AfterViewInit, OnDestroy {
13
12
  /**
@@ -73,9 +72,8 @@ declare class AXCollapseClickEvent extends AXClickEvent {
73
72
  }
74
73
  declare const AXCollapseComponent_base: polytype.Polytype.ClusteredConstructor<[typeof MXInteractiveComponent, typeof MXLookComponent]>;
75
74
  /**
76
- * A component that provides a collapsible section with animated transitions.
77
- *
78
- * @category Components
75
+ * @deprecated Use `accordion` instead.
76
+ * This component deprecated and no longer support.
79
77
  */
80
78
  declare class AXCollapseComponent extends AXCollapseComponent_base {
81
79
  private parent;
@@ -1,5 +1,6 @@
1
1
  import * as polytype from 'polytype';
2
2
  import * as _angular_core from '@angular/core';
3
+ import { TemplateRef } from '@angular/core';
3
4
  import { AXEvent, MXInputBaseValueComponent, MXLookComponent, AXHtmlEvent, AXFocusEvent } from '@acorex/cdk/common';
4
5
  import { AXListNavigationDirective, AXListNavigationItemDirective } from '@acorex/cdk/list-navigation';
5
6
  import { AXSearchBoxComponent } from '@acorex/components/search-box';
@@ -38,6 +39,12 @@ declare class AXCommandComponent extends AXCommandComponent_base {
38
39
  readonly onSearchBoxBlur: _angular_core.OutputEmitterRef<AXHtmlEvent<FocusEvent>>;
39
40
  protected listNavigation: _angular_core.Signal<AXListNavigationDirective>;
40
41
  private listNav;
42
+ /**
43
+ * The custom template used for rendering content.
44
+ *
45
+ * @param {TemplateRef<any>} customTemplate
46
+ */
47
+ customTemplate: _angular_core.InputSignal<TemplateRef<any>>;
41
48
  protected displayItems: _angular_core.Signal<CommandItem[]>;
42
49
  protected focusHandler(e: AXFocusEvent): void;
43
50
  protected blurHandler(e: AXFocusEvent): void;
@@ -48,7 +55,7 @@ declare class AXCommandComponent extends AXCommandComponent_base {
48
55
  protected closeHandler(e: AXHtmlEvent<KeyboardEvent>): void;
49
56
  protected activeHandler(l: AXListNavigationDirective, i: AXListNavigationItemDirective): void;
50
57
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXCommandComponent, never>;
51
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXCommandComponent, "ax-command", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "onSubmit": "onSubmit"; "onEscape": "onEscape"; "onSearchBoxFocus": "onSearchBoxFocus"; "onSearchBoxBlur": "onSearchBoxBlur"; }, never, never, true, never>;
58
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXCommandComponent, "ax-command", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "customTemplate": { "alias": "customTemplate"; "required": false; "isSignal": true; }; }, { "onSubmit": "onSubmit"; "onEscape": "onEscape"; "onSearchBoxFocus": "onSearchBoxFocus"; "onSearchBoxBlur": "onSearchBoxBlur"; }, never, never, true, never>;
52
59
  }
53
60
 
54
61
  declare class AXCommandModule {
@@ -78,22 +78,32 @@ This package requires the following peer dependencies:
78
78
 
79
79
  ```typescript
80
80
  import { ApplicationConfig } from '@angular/core';
81
- import { provideConversation, AXIndexedDBApi } from '@acorex/components/conversation2';
81
+ import {
82
+ provideConversation,
83
+ AXIndexedDBUserApi,
84
+ AXIndexedDBConversationApi,
85
+ AXIndexedDBMessageApi,
86
+ AXIndexedDBRealtimeApi,
87
+ } from '@acorex/components/conversation2';
82
88
 
83
89
  export const appConfig: ApplicationConfig = {
84
90
  providers: [
85
91
  provideConversation({
86
- api: AXIndexedDBApi, // or your custom API implementation
92
+ userApi: AXIndexedDBUserApi,
93
+ conversationApi: AXIndexedDBConversationApi,
94
+ messageApi: AXIndexedDBMessageApi,
95
+ realtimeApi: AXIndexedDBRealtimeApi, // optional
87
96
  config: {
88
- pageSize: 20,
89
- maxFileSize: 10 * 1024 * 1024, // 10MB
97
+ messagePageSize: 50,
98
+ conversationPageSize: 30,
99
+ maxFileSize: 10 * 1024 * 1024,
90
100
  allowedFileTypes: ['image/*', 'video/*', 'audio/*', 'application/pdf'],
91
101
  },
92
102
  registry: {
93
103
  // Optional: Register custom message renderers, actions, etc.
94
- }
95
- })
96
- ]
104
+ },
105
+ }),
106
+ ],
97
107
  };
98
108
  ```
99
109
 
@@ -101,17 +111,26 @@ export const appConfig: ApplicationConfig = {
101
111
 
102
112
  ```typescript
103
113
  import { NgModule } from '@angular/core';
104
- import { AXConversation2Module, AXIndexedDBApi } from '@acorex/components/conversation2';
114
+ import {
115
+ AXConversation2Module,
116
+ AXIndexedDBUserApi,
117
+ AXIndexedDBConversationApi,
118
+ AXIndexedDBMessageApi,
119
+ AXIndexedDBRealtimeApi,
120
+ } from '@acorex/components/conversation2';
105
121
 
106
122
  @NgModule({
107
123
  imports: [
108
124
  AXConversation2Module.forRoot({
109
- api: AXIndexedDBApi,
110
- config: { /* ... */ }
111
- })
112
- ]
125
+ userApi: AXIndexedDBUserApi,
126
+ conversationApi: AXIndexedDBConversationApi,
127
+ messageApi: AXIndexedDBMessageApi,
128
+ realtimeApi: AXIndexedDBRealtimeApi,
129
+ config: { /* ... */ },
130
+ }),
131
+ ],
113
132
  })
114
- export class AppModule { }
133
+ export class AppModule {}
115
134
  ```
116
135
 
117
136
  ### 3. Use in Template
@@ -155,20 +174,42 @@ export class MyConversationApi extends AXConversationApi {
155
174
  #### IndexedDB API (Development/Demo)
156
175
 
157
176
  ```typescript
158
- import { AXIndexedDBApi } from '@acorex/components/conversation2';
177
+ import {
178
+ provideConversation,
179
+ AXIndexedDBUserApi,
180
+ AXIndexedDBConversationApi,
181
+ AXIndexedDBMessageApi,
182
+ AXIndexedDBRealtimeApi,
183
+ } from '@acorex/components/conversation2';
159
184
 
160
185
  // Provides in-memory storage with sample data
161
186
  // Perfect for development and demos
162
- provideConversation({ api: AXIndexedDBApi })
187
+ provideConversation({
188
+ userApi: AXIndexedDBUserApi,
189
+ conversationApi: AXIndexedDBConversationApi,
190
+ messageApi: AXIndexedDBMessageApi,
191
+ realtimeApi: AXIndexedDBRealtimeApi,
192
+ });
163
193
  ```
164
194
 
165
195
  #### IndexedDB with AI API (AI-Powered Demo)
166
196
 
167
197
  ```typescript
168
- import { AXIndexedDBAIApi } from '@acorex/components/conversation2';
169
-
170
- // Includes AI-powered auto-responses
171
- provideConversation({ api: AXIndexedDBAIApi })
198
+ import {
199
+ provideConversation,
200
+ AXIndexedDBUserApi,
201
+ AXIndexedDBConversationApi,
202
+ AXIndexedDBMessageAIApi,
203
+ AXIndexedDBRealtimeApi,
204
+ } from '@acorex/components/conversation2';
205
+
206
+ // Includes AI-powered auto-responses via message API
207
+ provideConversation({
208
+ userApi: AXIndexedDBUserApi,
209
+ conversationApi: AXIndexedDBConversationApi,
210
+ messageApi: AXIndexedDBMessageAIApi,
211
+ realtimeApi: AXIndexedDBRealtimeApi,
212
+ });
172
213
  ```
173
214
 
174
215
  ## ⚙️ Configuration
@@ -178,23 +219,18 @@ provideConversation({ api: AXIndexedDBAIApi })
178
219
  ```typescript
179
220
  interface AXConversationConfig {
180
221
  // Pagination
181
- pageSize?: number; // Default: 20
222
+ messagePageSize?: number; // Default: 50
223
+ conversationPageSize?: number; // Default: 30
182
224
  infiniteScrollThreshold?: number; // Default: 200px
183
225
  scrollThreshold?: number; // Default: 100px
184
226
 
185
227
  // File Upload
186
228
  maxFileSize?: number; // Default: 10MB
187
- allowedFileTypes?: string[]; // Default: all types
229
+ allowedFileTypes?: string[]; // Default: see defaults
188
230
 
189
231
  // UI Behavior
190
232
  messageHighlightDuration?: number; // Default: 2000ms
191
233
  typingIndicatorTimeout?: number; // Default: 3000ms
192
-
193
- // Features
194
- enableReactions?: boolean; // Default: true
195
- enableReplies?: boolean; // Default: true
196
- enableEditing?: boolean; // Default: true
197
- enableDeletion?: boolean; // Default: true
198
234
  }
199
235
  ```
200
236
 
@@ -327,14 +363,18 @@ export class MyComponent {
327
363
  ```typescript
328
364
  import { TestBed } from '@angular/core/testing';
329
365
  import { provideConversation, AXConversationService } from '@acorex/components/conversation2';
330
- import { MockConversationApi } from './mocks/mock-api';
366
+ import { MockUserApi, MockConversationApi, MockMessageApi } from './mocks/mock-apis';
331
367
 
332
368
  describe('MyComponent', () => {
333
369
  beforeEach(() => {
334
370
  TestBed.configureTestingModule({
335
371
  providers: [
336
- provideConversation({ api: MockConversationApi })
337
- ]
372
+ provideConversation({
373
+ userApi: MockUserApi,
374
+ conversationApi: MockConversationApi,
375
+ messageApi: MockMessageApi,
376
+ }),
377
+ ],
338
378
  });
339
379
  });
340
380
 
@@ -343,7 +383,7 @@ describe('MyComponent', () => {
343
383
  const message = await service.sendMessage({
344
384
  conversationId: 'test',
345
385
  type: 'text',
346
- payload: { text: 'Test' }
386
+ payload: { text: 'Test' },
347
387
  });
348
388
  expect(message).toBeDefined();
349
389
  });