@acorex/components 22.1.0-next.31 → 22.1.0-next.33

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 (263) hide show
  1. package/emoji/README.md +3 -0
  2. package/emojipicker/README.md +3 -0
  3. package/fesm2022/acorex-components-accordion.mjs +13 -13
  4. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  5. package/fesm2022/acorex-components-action-sheet.mjs +13 -13
  6. package/fesm2022/acorex-components-alert.mjs +7 -7
  7. package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
  8. package/fesm2022/acorex-components-audio-wave.mjs +295 -271
  9. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  10. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  11. package/fesm2022/acorex-components-avatar.mjs +10 -10
  12. package/fesm2022/acorex-components-badge.mjs +7 -7
  13. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  14. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  15. package/fesm2022/acorex-components-bubble.mjs +71 -0
  16. package/fesm2022/acorex-components-bubble.mjs.map +1 -0
  17. package/fesm2022/acorex-components-button-group.mjs +22 -15
  18. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  19. package/fesm2022/acorex-components-button.mjs +194 -51
  20. package/fesm2022/acorex-components-button.mjs.map +1 -1
  21. package/fesm2022/acorex-components-calendar.mjs +332 -130
  22. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  23. package/fesm2022/acorex-components-check-box.mjs +7 -7
  24. package/fesm2022/acorex-components-chips.mjs +7 -7
  25. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  26. package/fesm2022/acorex-components-code-editor.mjs +44 -19
  27. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  28. package/fesm2022/acorex-components-color-box.mjs +7 -7
  29. package/fesm2022/acorex-components-color-palette.mjs +28 -28
  30. package/fesm2022/acorex-components-combo-box.mjs +244 -54
  31. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  32. package/fesm2022/acorex-components-command.mjs +7 -7
  33. package/fesm2022/acorex-components-comment.mjs +28 -28
  34. package/fesm2022/acorex-components-conversation-acorex-components-conversation-EmV9ldrU.mjs +19539 -0
  35. package/fesm2022/acorex-components-conversation-acorex-components-conversation-EmV9ldrU.mjs.map +1 -0
  36. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs +50 -0
  37. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map +1 -0
  38. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs +87 -0
  39. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -0
  40. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-DY7nhA-e.mjs +65 -0
  41. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-DY7nhA-e.mjs.map +1 -0
  42. package/fesm2022/acorex-components-conversation.mjs +1 -15470
  43. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  44. package/fesm2022/acorex-components-cron-job.mjs +47 -47
  45. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  46. package/fesm2022/acorex-components-data-list.mjs +3 -3
  47. package/fesm2022/acorex-components-data-pager.mjs +35 -35
  48. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  49. package/fesm2022/acorex-components-data-table.mjs +734 -165
  50. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  51. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  52. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  53. package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
  54. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  55. package/fesm2022/acorex-components-decorators.mjs +60 -30
  56. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  57. package/fesm2022/acorex-components-dialog.mjs +11 -11
  58. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  59. package/fesm2022/acorex-components-drawer.mjs +10 -10
  60. package/fesm2022/acorex-components-dropdown-button.mjs +10 -9
  61. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  62. package/fesm2022/acorex-components-dropdown.mjs +19 -14
  63. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  64. package/fesm2022/acorex-components-editor.mjs +15 -14
  65. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  66. package/fesm2022/acorex-components-emoji.mjs +74 -0
  67. package/fesm2022/acorex-components-emoji.mjs.map +1 -0
  68. package/fesm2022/acorex-components-emojipicker.mjs +425 -0
  69. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
  70. package/fesm2022/acorex-components-fab.mjs +6 -6
  71. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  72. package/fesm2022/acorex-components-file-viewer.mjs +370 -124
  73. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  74. package/fesm2022/acorex-components-form.mjs +17 -17
  75. package/fesm2022/acorex-components-form.mjs.map +1 -1
  76. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  77. package/fesm2022/acorex-components-highlight.mjs +80 -0
  78. package/fesm2022/acorex-components-highlight.mjs.map +1 -0
  79. package/fesm2022/acorex-components-image-editor.mjs +780 -451
  80. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  81. package/fesm2022/acorex-components-image.mjs +7 -7
  82. package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
  83. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
  84. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  85. package/fesm2022/acorex-components-kanban.mjs +3 -3
  86. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  87. package/fesm2022/acorex-components-kbd.mjs +6 -6
  88. package/fesm2022/acorex-components-label.mjs +7 -7
  89. package/fesm2022/acorex-components-list.mjs +28 -9
  90. package/fesm2022/acorex-components-list.mjs.map +1 -1
  91. package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
  92. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  93. package/fesm2022/acorex-components-loading.mjs +16 -16
  94. package/fesm2022/acorex-components-lookup.mjs +764 -156
  95. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  96. package/fesm2022/acorex-components-map.mjs +20 -13
  97. package/fesm2022/acorex-components-map.mjs.map +1 -1
  98. package/fesm2022/acorex-components-media-viewer.mjs +215 -218
  99. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  100. package/fesm2022/acorex-components-menu.mjs +146 -45
  101. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  102. package/fesm2022/acorex-components-message-status.mjs +71 -0
  103. package/fesm2022/acorex-components-message-status.mjs.map +1 -0
  104. package/fesm2022/acorex-components-message-time.mjs +36 -0
  105. package/fesm2022/acorex-components-message-time.mjs.map +1 -0
  106. package/fesm2022/acorex-components-message.mjs +120 -0
  107. package/fesm2022/acorex-components-message.mjs.map +1 -0
  108. package/fesm2022/acorex-components-navbar.mjs +7 -7
  109. package/fesm2022/acorex-components-notification.mjs +11 -11
  110. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  111. package/fesm2022/acorex-components-number-box.mjs +7 -7
  112. package/fesm2022/acorex-components-otp.mjs +7 -7
  113. package/fesm2022/acorex-components-page.mjs +10 -10
  114. package/fesm2022/acorex-components-paint.mjs +25 -25
  115. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  116. package/fesm2022/acorex-components-password-box.mjs +10 -10
  117. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  118. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  119. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  120. package/fesm2022/acorex-components-picker.mjs +13 -13
  121. package/fesm2022/acorex-components-popover.mjs +80 -21
  122. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  123. package/fesm2022/acorex-components-popup.mjs +167 -104
  124. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  125. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  126. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  127. package/fesm2022/acorex-components-radio.mjs +7 -7
  128. package/fesm2022/acorex-components-rail-navigation.mjs +14 -14
  129. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  130. package/fesm2022/acorex-components-range-slider.mjs +9 -9
  131. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  132. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  133. package/fesm2022/acorex-components-reaction.mjs +144 -0
  134. package/fesm2022/acorex-components-reaction.mjs.map +1 -0
  135. package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
  136. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  137. package/fesm2022/acorex-components-result.mjs +7 -7
  138. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  139. package/fesm2022/acorex-components-rrule.mjs +9 -9
  140. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  141. package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
  142. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  143. package/fesm2022/acorex-components-scheduler.mjs +34 -34
  144. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  145. package/fesm2022/acorex-components-search-box.mjs +7 -7
  146. package/fesm2022/acorex-components-select-box.mjs +7 -7
  147. package/fesm2022/acorex-components-selection-list.mjs +7 -8
  148. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  149. package/fesm2022/acorex-components-side-menu.mjs +55 -42
  150. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  151. package/fesm2022/acorex-components-sidebar.mjs +28 -28
  152. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  153. package/fesm2022/acorex-components-slider.mjs +7 -7
  154. package/fesm2022/acorex-components-sliding-item.mjs +13 -13
  155. package/fesm2022/acorex-components-step-wizard.mjs +16 -18
  156. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  157. package/fesm2022/acorex-components-switch.mjs +10 -10
  158. package/fesm2022/acorex-components-tabs.mjs +529 -78
  159. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  160. package/fesm2022/acorex-components-tag-box.mjs +7 -7
  161. package/fesm2022/acorex-components-tag.mjs +7 -7
  162. package/fesm2022/acorex-components-text-area.mjs +7 -7
  163. package/fesm2022/acorex-components-text-box.mjs +7 -7
  164. package/fesm2022/acorex-components-time-duration.mjs +7 -7
  165. package/fesm2022/acorex-components-time-line.mjs +10 -10
  166. package/fesm2022/acorex-components-toast.mjs +10 -10
  167. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  168. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  169. package/fesm2022/acorex-components-tree-view.mjs +58 -15
  170. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  171. package/fesm2022/acorex-components-uploader.mjs +13 -13
  172. package/fesm2022/acorex-components-video-player.mjs +7 -7
  173. package/fesm2022/acorex-components-wysiwyg.mjs +109 -39
  174. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  175. package/highlight/README.md +13 -0
  176. package/inline-reaction/README.md +3 -0
  177. package/lookup/README.md +1 -1
  178. package/message/README.md +3 -0
  179. package/message-status/README.md +3 -0
  180. package/message-time/README.md +3 -0
  181. package/package.json +42 -12
  182. package/reaction/README.md +3 -0
  183. package/types/acorex-components-action-sheet.d.ts +1 -1
  184. package/types/acorex-components-audio-wave.d.ts +132 -73
  185. package/types/acorex-components-bubble.d.ts +31 -0
  186. package/types/acorex-components-button-group.d.ts +4 -0
  187. package/types/acorex-components-button.d.ts +24 -7
  188. package/types/acorex-components-calendar.d.ts +43 -12
  189. package/types/acorex-components-check-box.d.ts +1 -1
  190. package/types/acorex-components-code-editor.d.ts +4 -1
  191. package/types/acorex-components-color-box.d.ts +1 -1
  192. package/types/acorex-components-color-palette.d.ts +2 -2
  193. package/types/acorex-components-combo-box.d.ts +34 -4
  194. package/types/acorex-components-command.d.ts +1 -1
  195. package/types/acorex-components-conversation.d.ts +1869 -1372
  196. package/types/acorex-components-cron-job.d.ts +6 -6
  197. package/types/acorex-components-data-pager.d.ts +2 -2
  198. package/types/acorex-components-data-table.d.ts +194 -21
  199. package/types/acorex-components-datetime-box.d.ts +1 -1
  200. package/types/acorex-components-datetime-picker.d.ts +1 -1
  201. package/types/acorex-components-decorators.d.ts +13 -1
  202. package/types/acorex-components-dialog.d.ts +1 -1
  203. package/types/acorex-components-dropdown-button.d.ts +2 -1
  204. package/types/acorex-components-dropdown.d.ts +6 -1
  205. package/types/acorex-components-editor.d.ts +1 -1
  206. package/types/acorex-components-emoji.d.ts +42 -0
  207. package/types/acorex-components-emojipicker.d.ts +146 -0
  208. package/types/acorex-components-file-viewer.d.ts +50 -6
  209. package/types/acorex-components-highlight.d.ts +31 -0
  210. package/types/acorex-components-image-editor.d.ts +72 -50
  211. package/types/acorex-components-inline-reaction.d.ts +52 -0
  212. package/types/acorex-components-list.d.ts +12 -0
  213. package/types/acorex-components-loading-dialog.d.ts +1 -1
  214. package/types/acorex-components-loading.d.ts +1 -1
  215. package/types/acorex-components-lookup.d.ts +213 -82
  216. package/types/acorex-components-map.d.ts +7 -2
  217. package/types/acorex-components-media-viewer.d.ts +4 -3
  218. package/types/acorex-components-menu.d.ts +17 -5
  219. package/types/acorex-components-message-status.d.ts +23 -0
  220. package/types/acorex-components-message-time.d.ts +19 -0
  221. package/types/acorex-components-message.d.ts +59 -0
  222. package/types/acorex-components-notification.d.ts +1 -1
  223. package/types/acorex-components-number-box.d.ts +1 -1
  224. package/types/acorex-components-otp.d.ts +1 -1
  225. package/types/acorex-components-page.d.ts +2 -2
  226. package/types/acorex-components-paint.d.ts +2 -2
  227. package/types/acorex-components-password-box.d.ts +1 -1
  228. package/types/acorex-components-phone-box.d.ts +1 -1
  229. package/types/acorex-components-popover.d.ts +18 -4
  230. package/types/acorex-components-popup.d.ts +62 -26
  231. package/types/acorex-components-rail-navigation.d.ts +1 -1
  232. package/types/acorex-components-range-slider.d.ts +1 -1
  233. package/types/acorex-components-reaction.d.ts +85 -0
  234. package/types/acorex-components-rest-api-generator.d.ts +1 -1
  235. package/types/acorex-components-rrule.d.ts +1 -1
  236. package/types/acorex-components-scheduler-picker.d.ts +1 -1
  237. package/types/acorex-components-scheduler.d.ts +1 -1
  238. package/types/acorex-components-search-box.d.ts +1 -1
  239. package/types/acorex-components-selection-list.d.ts +1 -1
  240. package/types/acorex-components-side-menu.d.ts +6 -8
  241. package/types/acorex-components-slider.d.ts +1 -1
  242. package/types/acorex-components-step-wizard.d.ts +4 -4
  243. package/types/acorex-components-switch.d.ts +1 -1
  244. package/types/acorex-components-tabs.d.ts +150 -19
  245. package/types/acorex-components-tag-box.d.ts +2 -2
  246. package/types/acorex-components-text-area.d.ts +1 -1
  247. package/types/acorex-components-text-box.d.ts +1 -1
  248. package/types/acorex-components-time-duration.d.ts +1 -1
  249. package/types/acorex-components-toast.d.ts +1 -1
  250. package/types/acorex-components-tree-view.d.ts +32 -3
  251. package/types/acorex-components-wysiwyg.d.ts +15 -2
  252. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +0 -50
  253. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +0 -1
  254. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs +0 -210
  255. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs.map +0 -1
  256. package/fesm2022/acorex-components-flow-chart.mjs +0 -735
  257. package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
  258. package/fesm2022/acorex-components-query-builder.mjs +0 -267
  259. package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
  260. package/flow-chart/README.md +0 -3
  261. package/query-builder/README.md +0 -3
  262. package/types/acorex-components-flow-chart.d.ts +0 -187
  263. package/types/acorex-components-query-builder.d.ts +0 -52
@@ -72,6 +72,7 @@ type AXContextMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXContextMenuCompon
72
72
  * @category Components
73
73
  */
74
74
  declare class AXContextMenuComponent extends NXComponent {
75
+ protected readonly supportsHeader = true;
75
76
  readonly orientation: _angular_core.InputSignal<AXOrientation>;
76
77
  readonly openOn: _angular_core.InputSignal<AXMenuOpenTrigger>;
77
78
  readonly closeOn: _angular_core.InputSignal<AXMenuCloseTrigger>;
@@ -115,6 +116,10 @@ declare class AXContextMenuComponent extends NXComponent {
115
116
  private backdropElement;
116
117
  private originalNextSibling;
117
118
  private originalParent;
119
+ private readonly headerSlot;
120
+ private floatingHeader;
121
+ private headerOriginalParent;
122
+ private headerOriginalNextSibling;
118
123
  protected items: _angular_core.WritableSignal<AXMenuItem[]>;
119
124
  /** @ignore */
120
125
  private setupCloseOnRouteChange;
@@ -130,24 +135,30 @@ declare class AXContextMenuComponent extends NXComponent {
130
135
  private internalShowAt;
131
136
  /**
132
137
  * Positions the menu at `point`, flipping when it would overflow the viewport.
133
- * Uses a temporary visible layout pass so parents that hide the host (e.g. side-menu `display: none`) do not yield a zero-sized rect.
138
+ * When a floating header is present, positions header and panel as one clamped block.
134
139
  */
135
140
  private positionAtPoint;
136
141
  /** Measures menu size even when an ancestor hides the host with `display: none`. */
137
142
  private measureMenuRect;
143
+ /** Measures the floating header bar using the same hidden-layout pass as the menu panel. */
144
+ private measureFloatingRect;
138
145
  /** @ignore */
139
146
  private createBackdrop;
147
+ /** Moves the projected header slot into the backdrop as a floating sibling of the panel. */
148
+ private floatHeaderToBackdrop;
149
+ /** Restores the header slot to its original parent before the backdrop is removed. */
150
+ private restoreFloatingHeader;
140
151
  /** @ignore */
141
152
  private resolveContextMenuTarget;
142
153
  /** @ignore */
143
154
  private removeBackdrop;
144
155
  private createEventListeners;
145
156
  /** @ignore */
146
- onWindowEvent(): void;
157
+ onWindowEvent(event?: Event): void;
147
158
  /** @ignore */
148
159
  get __hostClass(): any;
149
160
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXContextMenuComponent, never>;
150
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXContextMenuComponent, "ax-context-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "openOn": { "alias": "openOn"; "required": false; "isSignal": true; }; "closeOn": { "alias": "closeOn"; "required": false; "isSignal": true; }; "closeOnRouteChange": { "alias": "closeOnRouteChange"; "required": false; "isSignal": true; }; "originalItems": { "alias": "items"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, { "onItemClick": "onItemClick"; "onOpening": "onOpening"; "onClose": "onClose"; }, never, ["ax-menu-item,ax-divider,ax-title,ng-container"], true, never>;
161
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXContextMenuComponent, "ax-context-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "openOn": { "alias": "openOn"; "required": false; "isSignal": true; }; "closeOn": { "alias": "closeOn"; "required": false; "isSignal": true; }; "closeOnRouteChange": { "alias": "closeOnRouteChange"; "required": false; "isSignal": true; }; "originalItems": { "alias": "items"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, { "onItemClick": "onItemClick"; "onOpening": "onOpening"; "onClose": "onClose"; }, never, ["ax-header", "ax-menu-item,ax-divider,ax-title,ng-container"], true, never>;
151
162
  }
152
163
 
153
164
  type AXMenuItemClickEvent = AXMenuItemClickBaseEvent<AXMenuItemComponent>;
@@ -292,7 +303,7 @@ declare class AXMenuService {
292
303
  markOpen(item: AXMenuItemComponentBase): void;
293
304
  markClosed(item: AXMenuItemComponentBase): void;
294
305
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMenuService, never>;
295
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMenuService>;
306
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
296
307
  }
297
308
 
298
309
  type AXMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXMenuComponent>;
@@ -301,6 +312,7 @@ type AXMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXMenuComponent>;
301
312
  * @category Components
302
313
  */
303
314
  declare class AXMenuComponent extends NXComponent {
315
+ protected readonly supportsHeader = false;
304
316
  constructor();
305
317
  orientation: _angular_core.InputSignal<AXOrientation>;
306
318
  openOn: _angular_core.InputSignal<AXMenuOpenTrigger>;
@@ -318,7 +330,7 @@ declare class AXMenuComponent extends NXComponent {
318
330
  */
319
331
  close(): void;
320
332
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMenuComponent, never>;
321
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMenuComponent, "ax-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "openOn": { "alias": "openOn"; "required": false; "isSignal": true; }; "closeOn": { "alias": "closeOn"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "hasArrow": { "alias": "hasArrow"; "required": false; "isSignal": true; }; }, { "onItemClick": "onItemClick"; }, never, ["ax-menu-item,ax-divider,ax-title,ng-container"], true, never>;
333
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMenuComponent, "ax-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "openOn": { "alias": "openOn"; "required": false; "isSignal": true; }; "closeOn": { "alias": "closeOn"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "hasArrow": { "alias": "hasArrow"; "required": false; "isSignal": true; }; }, { "onItemClick": "onItemClick"; }, never, ["ax-header", "ax-menu-item,ax-divider,ax-title,ng-container"], true, never>;
322
334
  }
323
335
 
324
336
  declare class AXMenuModule {
@@ -0,0 +1,23 @@
1
+ import * as i0 from '@angular/core';
2
+ import { SafeHtml } from '@angular/platform-browser';
3
+ import * as i1 from '@angular/common';
4
+
5
+ type MessageStatus = 'pending' | 'send' | 'delivered' | 'failed';
6
+
7
+ declare class AXMessageStatusComponent {
8
+ #private;
9
+ status: i0.InputSignal<MessageStatus>;
10
+ private sanetizer;
11
+ protected htmlContent: i0.WritableSignal<SafeHtml>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMessageStatusComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXMessageStatusComponent, "ax-message-status", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
+ }
15
+
16
+ declare class AXMessageStatusModule {
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMessageStatusModule, never>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMessageStatusModule, never, [typeof i1.CommonModule], never>;
19
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMessageStatusModule>;
20
+ }
21
+
22
+ export { AXMessageStatusComponent, AXMessageStatusModule };
23
+ export type { MessageStatus };
@@ -0,0 +1,19 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+
5
+ declare class AXMessageTimeComponent implements OnInit {
6
+ constructor();
7
+ time: i0.InputSignal<string>;
8
+ ngOnInit(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMessageTimeComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXMessageTimeComponent, "ax-message-time", never, { "time": { "alias": "time"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
11
+ }
12
+
13
+ declare class AXMessageTimeModule {
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMessageTimeModule, never>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMessageTimeModule, never, [typeof i1.CommonModule], never>;
16
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMessageTimeModule>;
17
+ }
18
+
19
+ export { AXMessageTimeComponent, AXMessageTimeModule };
@@ -0,0 +1,59 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { AXMenuItem, AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
4
+ import { AXEmoji } from '@acorex/core/constants';
5
+ import { MessageStatus } from '@acorex/components/message-status';
6
+
7
+ type AXMessageLayout = 'ping-pong' | 'stack';
8
+ type AXBubbleTail = 'none' | 'start' | 'end';
9
+ /** @deprecated Use AXMessageLayout. Kept for backward compatibility in data models. */
10
+ type AXMessageAlign = 'start' | 'end';
11
+ interface AXMessageTemplateContext<T> {
12
+ $implicit: T;
13
+ }
14
+
15
+ declare class AXMessageComponent<T = unknown> {
16
+ templateData: _angular_core.InputSignal<T>;
17
+ itemTemplate: _angular_core.InputSignal<TemplateRef<AXMessageTemplateContext<T>>>;
18
+ layout: _angular_core.InputSignal<AXMessageLayout>;
19
+ /** Own message: aligned end in ping-pong and styled via inner ax-bubble. */
20
+ isown: _angular_core.InputSignal<boolean>;
21
+ text: _angular_core.InputSignal<string>;
22
+ avatarSrc: _angular_core.InputSignal<string>;
23
+ avatarSize: _angular_core.InputSignal<number>;
24
+ showAvatar: _angular_core.InputSignal<boolean>;
25
+ status: _angular_core.InputSignal<MessageStatus>;
26
+ time: _angular_core.InputSignal<string>;
27
+ /** Quick reactions shown in the context menu header. */
28
+ quickReactions: _angular_core.InputSignal<readonly AXEmoji[]>;
29
+ /** Context menu action items. Parent can also append via `contextMenuOpening`. */
30
+ contextMenuItems: _angular_core.InputSignal<readonly AXMenuItem[]>;
31
+ /** Whether right-click context menu is enabled on the bubble. */
32
+ contextMenuEnabled: _angular_core.InputSignal<boolean>;
33
+ /** Emoji size in pixels inside the context menu reaction bar. */
34
+ reactionSize: _angular_core.InputSignal<number>;
35
+ /** Emits when a quick reaction or picker emoji is selected from the context menu. */
36
+ reactionSelected: _angular_core.OutputEmitterRef<AXEmoji>;
37
+ /** Emits while the context menu opens so the parent can customize `event.items`. */
38
+ contextMenuOpening: _angular_core.OutputEmitterRef<AXContextMenuOpeningEvent>;
39
+ /** Emits when a context menu action item is clicked. */
40
+ menuItemClick: _angular_core.OutputEmitterRef<AXContextMenuItemsClickEvent>;
41
+ private readonly contextMenu;
42
+ protected readonly hasTemplate: _angular_core.Signal<boolean>;
43
+ protected readonly showReactionBar: _angular_core.Signal<boolean>;
44
+ protected readonly hostClass: _angular_core.Signal<string>;
45
+ protected onContextMenuOpening(event: AXContextMenuOpeningEvent): void;
46
+ protected onReactionSelected(emoji: AXEmoji): void;
47
+ protected onMenuItemClick(event: AXContextMenuItemsClickEvent): void;
48
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMessageComponent<any>, never>;
49
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMessageComponent<any>, "ax-message", never, { "templateData": { "alias": "templateData"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "isown": { "alias": "isown"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "avatarSize": { "alias": "avatarSize"; "required": false; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "time": { "alias": "time"; "required": false; "isSignal": true; }; "quickReactions": { "alias": "quickReactions"; "required": false; "isSignal": true; }; "contextMenuItems": { "alias": "contextMenuItems"; "required": false; "isSignal": true; }; "contextMenuEnabled": { "alias": "contextMenuEnabled"; "required": false; "isSignal": true; }; "reactionSize": { "alias": "reactionSize"; "required": false; "isSignal": true; }; }, { "reactionSelected": "reactionSelected"; "contextMenuOpening": "contextMenuOpening"; "menuItemClick": "menuItemClick"; }, never, ["*"], true, never>;
50
+ }
51
+
52
+ declare class AXMessageModule {
53
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMessageModule, never>;
54
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMessageModule, never, [typeof AXMessageComponent], [typeof AXMessageComponent]>;
55
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMessageModule>;
56
+ }
57
+
58
+ export { AXMessageComponent, AXMessageModule };
59
+ export type { AXBubbleTail, AXMessageAlign, AXMessageLayout, AXMessageTemplateContext };
@@ -147,7 +147,7 @@ declare class AXNotificationService {
147
147
  private applyRepositionPosition;
148
148
  private getPosition;
149
149
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXNotificationService, never>;
150
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXNotificationService>;
150
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
151
151
  }
152
152
 
153
153
  export { AXNotificationComponent, AXNotificationDefaultConfig, AXNotificationModule, AXNotificationService, AX_NOTIFICATION_CONFIG, notificationConfig };
@@ -10,7 +10,7 @@ import * as i4 from '@acorex/components/decorators';
10
10
  declare const AXNumberBoxComponent_base: polytype.Polytype.ClusteredConstructor<[{
11
11
  new (): MXInputBaseValueComponent<number>;
12
12
  ɵfac: _angular_core.ɵɵFactoryDeclaration<MXInputBaseValueComponent<any>, never>;
13
- ɵprov: _angular_core.ɵɵInjectableDeclaration<MXInputBaseValueComponent<any>>;
13
+ ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
14
14
  }, typeof MXLookComponent]>;
15
15
  /**
16
16
  * The NumberBox is a component which detects user interaction and triggers a corresponding event
@@ -11,7 +11,7 @@ declare class AXOtpCompletedEvent extends AXEvent {
11
11
  declare const AXOtpComponent_base: polytype.Polytype.ClusteredConstructor<[{
12
12
  new (): MXValueComponent<string>;
13
13
  ɵfac: _angular_core.ɵɵFactoryDeclaration<MXValueComponent<any>, never>;
14
- ɵprov: _angular_core.ɵɵInjectableDeclaration<MXValueComponent<any>>;
14
+ ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
15
15
  }, typeof MXLookComponent]>;
16
16
  /**
17
17
  * @category
@@ -19,7 +19,7 @@ declare class AXBasePageComponent extends MXBaseComponent implements OnDestroy {
19
19
  onClosing(e: AXComponentClosing): void | Promise<void>;
20
20
  ngOnDestroy(): void;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<AXBasePageComponent, never>;
22
- static ɵprov: i0.ɵɵInjectableDeclaration<AXBasePageComponent>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
23
23
  }
24
24
 
25
25
  declare abstract class AXPageComponent extends MXBaseComponent {
@@ -46,7 +46,7 @@ declare abstract class AXPageComponent extends MXBaseComponent {
46
46
  */
47
47
  set isLoading(v: boolean);
48
48
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPageComponent, never>;
49
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPageComponent>;
49
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
50
50
  }
51
51
 
52
52
  declare class AXPageModule {
@@ -20,13 +20,13 @@ declare class AXPaintService {
20
20
  toggleClear: _angular_core.WritableSignal<boolean>;
21
21
  activeToolState: _angular_core.WritableSignal<"pen" | "highlight" | "eraser">;
22
22
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPaintService, never>;
23
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPaintService>;
23
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
24
24
  }
25
25
 
26
26
  declare const AXPaintContainerComponent_base: polytype.Polytype.ClusteredConstructor<[{
27
27
  new (): MXInputBaseValueComponent<string>;
28
28
  ɵfac: _angular_core.ɵɵFactoryDeclaration<MXInputBaseValueComponent<any>, never>;
29
- ɵprov: _angular_core.ɵɵInjectableDeclaration<MXInputBaseValueComponent<any>>;
29
+ ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
30
30
  }, typeof MXLookComponent]>;
31
31
  /**
32
32
  * paint container.
@@ -12,7 +12,7 @@ import * as i7 from '@acorex/core/translation';
12
12
  declare const AXPasswordBoxComponent_base: polytype.Polytype.ClusteredConstructor<[{
13
13
  new (): MXInputBaseValueComponent<string>;
14
14
  ɵfac: _angular_core.ɵɵFactoryDeclaration<MXInputBaseValueComponent<any>, never>;
15
- ɵprov: _angular_core.ɵɵInjectableDeclaration<MXInputBaseValueComponent<any>>;
15
+ ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
16
16
  }, typeof MXLookComponent]>;
17
17
  /**
18
18
  * A specialized input field designed for securely capturing user passwords. It incorporates essential features to enhance usability, accessibility, and security while maintaining a user-friendly interface. The component extends MXInputBaseValueComponent and MXLookComponent to provide comprehensive input functionality with visual styling options.
@@ -14,7 +14,7 @@ import * as i8 from '@acorex/components/text-box';
14
14
  declare const AXPhoneBoxComponent_base: polytype.Polytype.ClusteredConstructor<[{
15
15
  new (): MXInputBaseValueComponent<string>;
16
16
  ɵfac: _angular_core.ɵɵFactoryDeclaration<MXInputBaseValueComponent<any>, never>;
17
- ɵprov: _angular_core.ɵɵInjectableDeclaration<MXInputBaseValueComponent<any>>;
17
+ ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
18
18
  }, typeof MXLookComponent]>;
19
19
  /**
20
20
  * @category
@@ -33,6 +33,10 @@ declare class AXPopoverComponent extends MXBaseComponent implements OnDestroy {
33
33
  /** @ignore */
34
34
  private _scrollActivationFrame;
35
35
  /** @ignore */
36
+ private _leaveCloseTimer;
37
+ /** @ignore */
38
+ private _overlayLeaveEvents;
39
+ /** @ignore */
36
40
  private resizeObserver;
37
41
  /** @ignore */
38
42
  private resize$;
@@ -148,6 +152,10 @@ declare class AXPopoverComponent extends MXBaseComponent implements OnDestroy {
148
152
  * Scrolling within the popover (or any nested overlay) will not close it.
149
153
  */
150
154
  closeOnScroll: boolean;
155
+ /**
156
+ * Whether to close the popover when the application navigates to another route.
157
+ */
158
+ closeOnNavigation: boolean;
151
159
  /**
152
160
  * CSS class to apply to the backdrop element.
153
161
  */
@@ -181,17 +189,23 @@ declare class AXPopoverComponent extends MXBaseComponent implements OnDestroy {
181
189
  /** @ignore */
182
190
  private bindOverlayEvents;
183
191
  /** @ignore */
192
+ private clearLeaveCloseTimer;
193
+ /** @ignore */
194
+ private scheduleLeaveClose;
195
+ /** @ignore */
184
196
  private removeOverlayEvents;
185
197
  /** @ignore */
186
198
  private setupScrollListener;
187
199
  /** @ignore */
188
200
  private removeScrollListener;
189
201
  /**
190
- * True when scroll is a side-effect of focusing an editable control inside the overlay
191
- * (soft keyboard / visual viewport adjustment), mainly on iOS Safari.
202
+ * True when document-level scroll is a side-effect of focusing an editable control
203
+ * inside the overlay (soft keyboard / visual viewport adjustment), mainly on iOS Safari.
192
204
  * @ignore
193
205
  */
194
- private isKeyboardInducedScroll;
206
+ private isKeyboardInducedDocumentScroll;
207
+ /** @ignore */
208
+ private isDocumentScrollTarget;
195
209
  /**
196
210
  * Checks whether the given element lives inside a child overlay
197
211
  * (an overlay stacked on top of this popover, e.g. a selectbox dropdown).
@@ -249,7 +263,7 @@ declare class AXPopoverComponent extends MXBaseComponent implements OnDestroy {
249
263
  /** @ignore */
250
264
  ngOnDestroy(): void;
251
265
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPopoverComponent, never>;
252
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPopoverComponent, "ax-popover", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "disablePanelClass": { "alias": "disablePanelClass"; "required": false; "isSignal": true; }; "visualContextScope": { "alias": "visualContextScope"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "offsetY": { "alias": "offsetY"; "required": false; }; "target": { "alias": "target"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "content": { "alias": "content"; "required": false; }; "openOn": { "alias": "openOn"; "required": false; }; "closeOn": { "alias": "closeOn"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "openAfter": { "alias": "openAfter"; "required": false; }; "closeAfter": { "alias": "closeAfter"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; }; }, { "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["*"], true, never>;
266
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPopoverComponent, "ax-popover", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "disablePanelClass": { "alias": "disablePanelClass"; "required": false; "isSignal": true; }; "visualContextScope": { "alias": "visualContextScope"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "offsetY": { "alias": "offsetY"; "required": false; }; "target": { "alias": "target"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "content": { "alias": "content"; "required": false; }; "openOn": { "alias": "openOn"; "required": false; }; "closeOn": { "alias": "closeOn"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "openAfter": { "alias": "openAfter"; "required": false; }; "closeAfter": { "alias": "closeAfter"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "closeOnNavigation": { "alias": "closeOnNavigation"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; }; }, { "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["*"], true, never>;
253
267
  }
254
268
 
255
269
  declare class AXPopoverModule {
@@ -3,7 +3,10 @@ import { TemplateRef, ViewContainerRef, StaticProvider, ElementRef, OnInit, OnDe
3
3
  import * as i2 from '@acorex/cdk/common';
4
4
  import { NXComponent, MXBaseComponent, AXComponentClosedPromise } from '@acorex/cdk/common';
5
5
  import { AXComponentType, AXComponentInputs } from '@acorex/core/components';
6
+ import { AXResizeHandle } from '@acorex/cdk/resizable';
7
+ import { AXOverlayAnimation } from '@acorex/cdk/overlay';
6
8
  import { Subject } from 'rxjs';
9
+ import * as _acorex_components_popup from '@acorex/components/popup';
7
10
  import * as i1 from '@angular/common';
8
11
  import * as i3 from '@acorex/components/decorators';
9
12
  import * as i4 from '@acorex/core/translation';
@@ -24,6 +27,28 @@ interface AXPopupButtonsConfig {
24
27
  maximize?: boolean;
25
28
  close?: boolean;
26
29
  }
30
+ interface AXPopupResizableConfig {
31
+ handles?: AXResizeHandle[];
32
+ minWidth?: number;
33
+ minHeight?: number;
34
+ /** Defaults to the viewport width when unset. */
35
+ maxWidth?: number;
36
+ /** Defaults to the viewport height when unset. */
37
+ maxHeight?: number;
38
+ lockAspectRatio?: boolean;
39
+ dblClickAction?: 'reset' | 'maximize' | 'fit';
40
+ }
41
+ declare const AX_POPUP_DEFAULT_RESIZE_HANDLES: AXResizeHandle[];
42
+ interface AXPopupResolvedResizableConfig {
43
+ enable: boolean;
44
+ handles: AXResizeHandle[];
45
+ minWidth: number;
46
+ minHeight: number;
47
+ maxWidth: number | null;
48
+ maxHeight: number | null;
49
+ lockAspectRatio: boolean;
50
+ dblClickAction: 'reset' | 'maximize' | 'fit';
51
+ }
27
52
  interface AXPopupConfig {
28
53
  title?: string;
29
54
  /** Flat alias; overridden by `buttons.close` when set. */
@@ -37,6 +62,8 @@ interface AXPopupConfig {
37
62
  data?: unknown;
38
63
  inputs?: unknown;
39
64
  draggable?: boolean;
65
+ /** Enable drag handles on the popup window. `true` uses defaults; pass an object to customize. */
66
+ resizable?: boolean | AXPopupResizableConfig;
40
67
  hasBackdrop?: boolean;
41
68
  backdropClass?: string;
42
69
  closeOnBackdropClick?: boolean;
@@ -46,6 +73,14 @@ interface AXPopupConfig {
46
73
  viewContainerRef?: ViewContainerRef;
47
74
  providers?: StaticProvider[];
48
75
  panelClass?: string[];
76
+ /**
77
+ * Overlay enter/leave animation applied to the popup window, not the full-screen container.
78
+ * - omitted / `true`: default fade in and fade out
79
+ * - `false` or `[]`: no animation
80
+ * - `string[]`: custom enter classes
81
+ * - `{ enter, leave }`: custom enter and leave classes
82
+ */
83
+ animation?: AXOverlayAnimation;
49
84
  direction?: 'rtl' | 'ltr';
50
85
  /** Window chrome buttons. Individual fields override flat `closeButton` / `maximizable` when set. */
51
86
  buttons?: AXPopupButtonsConfig;
@@ -63,6 +98,12 @@ interface AXPopupConfig {
63
98
  * Density context. It does not affect overlay positioning.
64
99
  */
65
100
  contextElement?: HTMLElement | ElementRef<HTMLElement>;
101
+ /** Delay in ms before the real content is created. While waiting, a skeleton placeholder is shown. */
102
+ delay?: number;
103
+ /** Skeleton template rendered during `delay`. Falls back to a built-in ax-skeleton placeholder. */
104
+ skeletonTemplate?: TemplateRef<unknown>;
105
+ /** Animates the built-in skeleton placeholder. Ignored when `skeletonTemplate` is provided. */
106
+ skeletonAnimated?: boolean;
66
107
  }
67
108
  interface AXPopupData {
68
109
  title: string;
@@ -109,6 +150,8 @@ declare function resolvePopupMinimize(config?: AXPopupConfig | null): {
109
150
  enable: boolean;
110
151
  position: AXPopupMinimizePosition;
111
152
  };
153
+ /** Resolves resize config. Disabled for `size: 'full'` and when `resizable` is false/omitted. */
154
+ declare function resolvePopupResizable(config?: AXPopupConfig | null): AXPopupResolvedResizableConfig;
112
155
 
113
156
  /**
114
157
  * Declarative popup host. Project content and call `open()` / `close()` on the component instance.
@@ -163,8 +206,7 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
163
206
  private loadingService;
164
207
  private _platform;
165
208
  private componentService;
166
- private _router;
167
- private _destroyRef;
209
+ private document;
168
210
  private contentContainerRef;
169
211
  private contentContainerEl;
170
212
  private popupEl;
@@ -180,20 +222,23 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
180
222
  /** @ignore */
181
223
  private _loadingId;
182
224
  /** @ignore */
225
+ private _delayTimer;
226
+ /** @ignore */
183
227
  private _componentRef;
228
+ protected showSkeleton: _angular_core.WritableSignal<boolean>;
229
+ protected skeletonTemplate: () => TemplateRef<unknown>;
184
230
  /** Current title */
185
231
  protected title: _angular_core.WritableSignal<string>;
186
- /** @ignore */
187
- protected isDragging: _angular_core.WritableSignal<boolean>;
188
- /** @ignore */
189
- protected dragOffset: _angular_core.WritableSignal<{
190
- x: number;
191
- y: number;
192
- }>;
193
- /** @ignore */
194
- private dragStartPos;
195
- /** @ignore */
196
- private elementStartPos;
232
+ /** Clamps dragging to the viewport (`document.documentElement`). */
233
+ protected readonly dragBoundary: _angular_core.WritableSignal<HTMLElement>;
234
+ protected readonly dragDisabled: _angular_core.Signal<boolean>;
235
+ protected readonly resizeConfig: _angular_core.Signal<_acorex_components_popup.AXPopupResolvedResizableConfig>;
236
+ protected readonly resizeActive: _angular_core.Signal<boolean>;
237
+ protected readonly resizeEnabled: _angular_core.Signal<boolean>;
238
+ private readonly viewportSize;
239
+ protected readonly resizeMaxWidth: _angular_core.Signal<number>;
240
+ protected readonly resizeMaxHeight: _angular_core.Signal<number>;
241
+ private viewportResizeHandler;
197
242
  protected popupSizeState: _angular_core.WritableSignal<"minimize" | "normal">;
198
243
  protected fullScreenState: _angular_core.WritableSignal<boolean>;
199
244
  protected minimizeLeft: _angular_core.WritableSignal<string>;
@@ -202,15 +247,9 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
202
247
  protected closeEnabled: () => boolean;
203
248
  protected maximizeEnabled: () => boolean;
204
249
  protected minimizeEnabled: () => boolean;
250
+ constructor();
205
251
  /** @ignore */
206
252
  ngOnInit(): void;
207
- /**
208
- * Subscribes to router navigation events so the popup is closed automatically
209
- * when the user navigates to another route. Enabled by default; disable via
210
- * `closeOnNavigation: false` in the popup config.
211
- * @ignore
212
- */
213
- private _setupCloseOnNavigation;
214
253
  /** @ignore */
215
254
  private renderContent;
216
255
  /** @ignore */
@@ -249,9 +288,6 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
249
288
  * Sets the popup title.
250
289
  */
251
290
  setTitle(title: string): void;
252
- protected onDragStart(event: MouseEvent): void;
253
- onDragMove(event: MouseEvent): void;
254
- onDragEnd(): void;
255
291
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPopupComponent, never>;
256
292
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPopupComponent, "ax-popup", never, { "__content__": { "alias": "__content__"; "required": false; "isSignal": true; }; "__config__": { "alias": "__config__"; "required": false; "isSignal": true; }; "__popupRef__": { "alias": "__popupRef__"; "required": false; "isSignal": true; }; "__id__": { "alias": "__id__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
257
293
  }
@@ -312,8 +348,8 @@ declare class AXPopupService {
312
348
  bringToFront(id: number): void;
313
349
  private getPopupInstance;
314
350
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPopupService, never>;
315
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPopupService>;
351
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
316
352
  }
317
353
 
318
- export { AXPopupComponent, AXPopupComponentBase, AXPopupFooterComponent, AXPopupHostComponent, AXPopupModule, AXPopupService, resolvePopupCloseButton, resolvePopupMaximizable, resolvePopupMinimize };
319
- export type { AXPopupButtonsConfig, AXPopupConfig, AXPopupContentType, AXPopupData, AXPopupMinimizePosition, AXPopupRef, AXPopupSizeType };
354
+ export { AXPopupComponent, AXPopupComponentBase, AXPopupFooterComponent, AXPopupHostComponent, AXPopupModule, AXPopupService, AX_POPUP_DEFAULT_RESIZE_HANDLES, resolvePopupCloseButton, resolvePopupMaximizable, resolvePopupMinimize, resolvePopupResizable };
355
+ export type { AXPopupButtonsConfig, AXPopupConfig, AXPopupContentType, AXPopupData, AXPopupMinimizePosition, AXPopupRef, AXPopupResizableConfig, AXPopupResolvedResizableConfig, AXPopupSizeType };
@@ -76,7 +76,7 @@ declare class AXRailNavigationService {
76
76
  */
77
77
  setActive(item: AXRailNavigationItemComponent): void;
78
78
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXRailNavigationService, never>;
79
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXRailNavigationService>;
79
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
80
80
  }
81
81
 
82
82
  export { AXRailNavigationComponent, AXRailNavigationItemComponent, AXRailNavigationModule, AXRailNavigationService };
@@ -15,7 +15,7 @@ type AXRangeSliderHandler = 'first' | 'second';
15
15
  declare const AXRangeSliderComponent_base: polytype.Polytype.ClusteredConstructor<[{
16
16
  new (): MXValueComponent<AXRangeSliderValue>;
17
17
  ɵfac: _angular_core.ɵɵFactoryDeclaration<MXValueComponent<any>, never>;
18
- ɵprov: _angular_core.ɵɵInjectableDeclaration<MXValueComponent<any>>;
18
+ ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
19
19
  }]>;
20
20
  /**
21
21
  * @description
@@ -0,0 +1,85 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { AXEmoji } from '@acorex/core/constants';
3
+
4
+ /**
5
+ * A single aggregated reaction shown by {@link AXReactionComponent}.
6
+ */
7
+ interface AXReactionItem {
8
+ /** Emoji metadata rendered with {@link AXEmojiComponent}. */
9
+ emoji: AXEmoji;
10
+ /** Number of users who reacted with this emoji. */
11
+ count: number;
12
+ /** Whether the current user has selected this reaction. */
13
+ selected?: boolean;
14
+ }
15
+
16
+ /**
17
+ * Telegram-style reaction chips for chat messages.
18
+ * Renders emojis with {@link AXEmojiComponent} and opens {@link AXEmojiPickerComponent}
19
+ * inside {@link AXPopoverComponent} when editable.
20
+ *
21
+ * @category Components
22
+ */
23
+ declare class AXReactionComponent {
24
+ /**
25
+ * Aggregated reactions to display.
26
+ *
27
+ * @defaultValue []
28
+ */
29
+ readonly items: _angular_core.InputSignal<readonly AXReactionItem[]>;
30
+ /**
31
+ * Rendered emoji size in pixels.
32
+ *
33
+ * @defaultValue 18
34
+ */
35
+ readonly size: _angular_core.InputSignal<number>;
36
+ /**
37
+ * When true, reactions are interactive and an add button opens the emoji picker popover.
38
+ *
39
+ * @defaultValue false
40
+ */
41
+ readonly editable: _angular_core.InputSignal<boolean>;
42
+ /**
43
+ * When true, the emoji picker popover is opened.
44
+ *
45
+ * @defaultValue false
46
+ */
47
+ readonly showPicker: _angular_core.InputSignal<boolean>;
48
+ /**
49
+ * Emits when the user selects a new reaction or an unselected existing one.
50
+ */
51
+ readonly add: _angular_core.OutputEmitterRef<AXEmoji>;
52
+ /**
53
+ * Emits when the user removes their own reaction.
54
+ */
55
+ readonly remove: _angular_core.OutputEmitterRef<AXEmoji>;
56
+ private readonly pickerPopover;
57
+ /** Whether the emoji picker popover is currently open. */
58
+ protected readonly pickerOpen: _angular_core.WritableSignal<boolean>;
59
+ /** Whether the add button should appear pressed while the picker is open. */
60
+ protected readonly isPickerVisible: _angular_core.Signal<boolean>;
61
+ constructor();
62
+ /** Toggles a reaction without mutating counts; parent owns state. */
63
+ protected onItemClick(item: AXReactionItem): void;
64
+ /** Opens or closes the emoji picker popover. */
65
+ protected togglePicker(event?: Event): void;
66
+ /** Forwards a picker selection as `add` and closes the popover. */
67
+ protected onPickerSelected(emoji: AXEmoji): void;
68
+ /** Syncs the add-button pressed state when the popover opens. */
69
+ protected onPickerOpened(): void;
70
+ /** Syncs the add-button pressed state when the popover closes. */
71
+ protected onPickerClosed(): void;
72
+ /** Accessible name for an existing reaction chip. */
73
+ protected itemAriaLabel(item: AXReactionItem): string;
74
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXReactionComponent, never>;
75
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXReactionComponent, "ax-reaction", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showPicker": { "alias": "showPicker"; "required": false; "isSignal": true; }; }, { "add": "add"; "remove": "remove"; }, never, never, true, never>;
76
+ }
77
+
78
+ declare class AXReactionModule {
79
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXReactionModule, never>;
80
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXReactionModule, never, [typeof AXReactionComponent], [typeof AXReactionComponent]>;
81
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXReactionModule>;
82
+ }
83
+
84
+ export { AXReactionComponent, AXReactionModule };
85
+ export type { AXReactionItem };
@@ -33,7 +33,7 @@ type AXRestApiOutput = {
33
33
  declare class AXRestApiGeneratorService {
34
34
  outPutJSON: i0.WritableSignal<AXRestApiOutput>;
35
35
  static ɵfac: i0.ɵɵFactoryDeclaration<AXRestApiGeneratorService, never>;
36
- static ɵprov: i0.ɵɵInjectableDeclaration<AXRestApiGeneratorService>;
36
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
37
37
  }
38
38
 
39
39
  declare class AXQueryParamsComponent {
@@ -96,7 +96,7 @@ declare class AXRruleService {
96
96
  */
97
97
  rruleGetAfter(rule: AXRRuleType, date: Date, inclusive?: boolean): Date | null;
98
98
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXRruleService, never>;
99
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXRruleService>;
99
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
100
100
  }
101
101
 
102
102
  declare class AXRrulePreviewComponent implements OnInit {