@acorex/components 22.0.0 → 22.0.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/emoji/README.md +3 -0
  2. package/emojipicker/README.md +3 -0
  3. package/fesm2022/acorex-components-accordion.mjs +4 -4
  4. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  5. package/fesm2022/acorex-components-audio-wave.mjs +291 -267
  6. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  7. package/fesm2022/acorex-components-bubble.mjs +71 -0
  8. package/fesm2022/acorex-components-bubble.mjs.map +1 -0
  9. package/fesm2022/acorex-components-button-group.mjs +12 -5
  10. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  11. package/fesm2022/acorex-components-button.mjs +2 -2
  12. package/fesm2022/acorex-components-button.mjs.map +1 -1
  13. package/fesm2022/acorex-components-calendar.mjs +321 -118
  14. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  15. package/fesm2022/acorex-components-combo-box.mjs +238 -48
  16. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  17. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs +19058 -0
  18. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs.map +1 -0
  19. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs +50 -0
  20. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs.map +1 -0
  21. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs +87 -0
  22. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs.map +1 -0
  23. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs +65 -0
  24. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs.map +1 -0
  25. package/fesm2022/acorex-components-conversation.mjs +1 -15470
  26. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  27. package/fesm2022/acorex-components-cron-job.mjs +1 -1
  28. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  29. package/fesm2022/acorex-components-data-pager.mjs +4 -4
  30. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  31. package/fesm2022/acorex-components-data-table.mjs +126 -30
  32. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  33. package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
  34. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  35. package/fesm2022/acorex-components-decorators.mjs +36 -6
  36. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  37. package/fesm2022/acorex-components-dialog.mjs +1 -1
  38. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  39. package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
  40. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  41. package/fesm2022/acorex-components-emoji.mjs +74 -0
  42. package/fesm2022/acorex-components-emoji.mjs.map +1 -0
  43. package/fesm2022/acorex-components-emojipicker.mjs +425 -0
  44. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
  45. package/fesm2022/acorex-components-fab.mjs +2 -2
  46. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  47. package/fesm2022/acorex-components-file-viewer.mjs +339 -89
  48. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  49. package/fesm2022/acorex-components-form.mjs +1 -1
  50. package/fesm2022/acorex-components-form.mjs.map +1 -1
  51. package/fesm2022/acorex-components-highlight.mjs +80 -0
  52. package/fesm2022/acorex-components-highlight.mjs.map +1 -0
  53. package/fesm2022/acorex-components-image-editor.mjs +686 -416
  54. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  55. package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
  56. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
  57. package/fesm2022/acorex-components-kanban.mjs +1 -1
  58. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  59. package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
  60. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  61. package/fesm2022/acorex-components-lookup.mjs +742 -134
  62. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  63. package/fesm2022/acorex-components-map.mjs +7 -0
  64. package/fesm2022/acorex-components-map.mjs.map +1 -1
  65. package/fesm2022/acorex-components-menu.mjs +96 -16
  66. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  67. package/fesm2022/acorex-components-message-status.mjs +71 -0
  68. package/fesm2022/acorex-components-message-status.mjs.map +1 -0
  69. package/fesm2022/acorex-components-message-time.mjs +36 -0
  70. package/fesm2022/acorex-components-message-time.mjs.map +1 -0
  71. package/fesm2022/acorex-components-message.mjs +120 -0
  72. package/fesm2022/acorex-components-message.mjs.map +1 -0
  73. package/fesm2022/acorex-components-notification.mjs +1 -1
  74. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  75. package/fesm2022/acorex-components-paint.mjs +1 -1
  76. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  77. package/fesm2022/acorex-components-popover.mjs +19 -8
  78. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  79. package/fesm2022/acorex-components-popup.mjs +1 -1
  80. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  81. package/fesm2022/acorex-components-rail-navigation.mjs +2 -2
  82. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  83. package/fesm2022/acorex-components-range-slider.mjs +2 -2
  84. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  85. package/fesm2022/acorex-components-reaction.mjs +144 -0
  86. package/fesm2022/acorex-components-reaction.mjs.map +1 -0
  87. package/fesm2022/acorex-components-rest-api-generator.mjs +5 -5
  88. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  89. package/fesm2022/acorex-components-rrule.mjs +1 -1
  90. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  91. package/fesm2022/acorex-components-scheduler-picker.mjs +5 -5
  92. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  93. package/fesm2022/acorex-components-scheduler.mjs +1 -1
  94. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  95. package/fesm2022/acorex-components-selection-list.mjs +1 -2
  96. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  97. package/fesm2022/acorex-components-tabs.mjs +510 -74
  98. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  99. package/fesm2022/acorex-components-tree-view.mjs +49 -6
  100. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  101. package/fesm2022/acorex-components-wysiwyg.mjs +76 -6
  102. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  103. package/highlight/README.md +13 -0
  104. package/inline-reaction/README.md +3 -0
  105. package/lookup/README.md +1 -1
  106. package/message/README.md +3 -0
  107. package/message-status/README.md +3 -0
  108. package/message-time/README.md +3 -0
  109. package/package.json +42 -12
  110. package/reaction/README.md +3 -0
  111. package/types/acorex-components-audio-wave.d.ts +132 -73
  112. package/types/acorex-components-bubble.d.ts +31 -0
  113. package/types/acorex-components-button-group.d.ts +4 -0
  114. package/types/acorex-components-button.d.ts +1 -1
  115. package/types/acorex-components-calendar.d.ts +41 -9
  116. package/types/acorex-components-combo-box.d.ts +34 -4
  117. package/types/acorex-components-conversation.d.ts +1745 -1322
  118. package/types/acorex-components-data-table.d.ts +27 -7
  119. package/types/acorex-components-decorators.d.ts +13 -1
  120. package/types/acorex-components-emoji.d.ts +42 -0
  121. package/types/acorex-components-emojipicker.d.ts +146 -0
  122. package/types/acorex-components-file-viewer.d.ts +48 -4
  123. package/types/acorex-components-highlight.d.ts +31 -0
  124. package/types/acorex-components-image-editor.d.ts +68 -48
  125. package/types/acorex-components-inline-reaction.d.ts +52 -0
  126. package/types/acorex-components-lookup.d.ts +213 -82
  127. package/types/acorex-components-map.d.ts +5 -0
  128. package/types/acorex-components-menu.d.ts +15 -3
  129. package/types/acorex-components-message-status.d.ts +23 -0
  130. package/types/acorex-components-message-time.d.ts +19 -0
  131. package/types/acorex-components-message.d.ts +59 -0
  132. package/types/acorex-components-popover.d.ts +5 -3
  133. package/types/acorex-components-reaction.d.ts +85 -0
  134. package/types/acorex-components-selection-list.d.ts +1 -1
  135. package/types/acorex-components-tabs.d.ts +148 -19
  136. package/types/acorex-components-tree-view.d.ts +31 -2
  137. package/types/acorex-components-wysiwyg.d.ts +13 -0
  138. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +0 -50
  139. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +0 -1
  140. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs +0 -210
  141. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs.map +0 -1
  142. package/fesm2022/acorex-components-flow-chart.mjs +0 -735
  143. package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
  144. package/fesm2022/acorex-components-query-builder.mjs +0 -267
  145. package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
  146. package/flow-chart/README.md +0 -3
  147. package/query-builder/README.md +0 -3
  148. package/types/acorex-components-flow-chart.d.ts +0 -187
  149. 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,13 +135,19 @@ 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 */
@@ -147,7 +158,7 @@ declare class AXContextMenuComponent extends NXComponent {
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>;
@@ -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 };
@@ -187,11 +187,13 @@ declare class AXPopoverComponent extends MXBaseComponent implements OnDestroy {
187
187
  /** @ignore */
188
188
  private removeScrollListener;
189
189
  /**
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.
190
+ * True when document-level scroll is a side-effect of focusing an editable control
191
+ * inside the overlay (soft keyboard / visual viewport adjustment), mainly on iOS Safari.
192
192
  * @ignore
193
193
  */
194
- private isKeyboardInducedScroll;
194
+ private isKeyboardInducedDocumentScroll;
195
+ /** @ignore */
196
+ private isDocumentScrollTarget;
195
197
  /**
196
198
  * Checks whether the given element lives inside a child overlay
197
199
  * (an overlay stacked on top of this popover, e.g. a selectbox dropdown).
@@ -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 };
@@ -80,7 +80,7 @@ declare class AXSelectionListComponent extends MXSelectionValueComponent {
80
80
  /** @ignore */
81
81
  private get __hostClass();
82
82
  static ɵfac: i0.ɵɵFactoryDeclaration<AXSelectionListComponent, never>;
83
- static ɵcmp: i0.ɵɵComponentDeclaration<AXSelectionListComponent, "ax-selection-list", never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "textField": { "alias": "textField"; "required": false; }; "disabledField": { "alias": "disabledField"; "required": false; }; "readonlyField": { "alias": "readonlyField"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "customTemplate": { "alias": "customTemplate"; "required": false; "isSignal": true; }; "showControl": { "alias": "showControl"; "required": false; }; "items": { "alias": "items"; "required": false; }; "look": { "alias": "look"; "required": false; }; }, { "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; }, never, ["ax-validation-rule"], true, never>;
83
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXSelectionListComponent, "ax-selection-list", never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "value": { "alias": "value"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "textField": { "alias": "textField"; "required": false; }; "disabledField": { "alias": "disabledField"; "required": false; }; "readonlyField": { "alias": "readonlyField"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "customTemplate": { "alias": "customTemplate"; "required": false; "isSignal": true; }; "showControl": { "alias": "showControl"; "required": false; }; "items": { "alias": "items"; "required": false; }; "look": { "alias": "look"; "required": false; }; }, { "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; }, never, ["ax-validation-rule"], true, never>;
84
84
  }
85
85
 
86
86
  declare class AXSelectionListModule {
@@ -1,24 +1,21 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef, EventEmitter, AfterViewInit, AfterContentInit, OnDestroy } from '@angular/core';
2
+ import { TemplateRef, EventEmitter, OnDestroy, AfterViewInit, AfterContentInit } from '@angular/core';
3
3
  import { MXInteractiveComponent, AXClickEvent, MXComponentOptionChanged, AXEvent, MXBaseComponent } from '@acorex/cdk/common';
4
- import * as i1 from '@angular/common';
5
- import * as i2 from '@angular/cdk/portal';
4
+ import * as i1 from '@acorex/cdk/drag-drop';
5
+ import * as i2 from '@acorex/cdk/horizontal-scroll';
6
+ import * as i1$1 from '@angular/common';
7
+ import * as i2$1 from '@angular/cdk/portal';
6
8
  import * as i3 from '@acorex/components/decorators';
7
9
 
8
- declare class AXTabContentDirective {
9
- private _viewContainerRef;
10
- private _portal;
11
- get portal(): TemplateRef<any> | undefined;
12
- set portal(v: TemplateRef<any> | undefined);
13
- static ɵfac: i0.ɵɵFactoryDeclaration<AXTabContentDirective, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<AXTabContentDirective, "[axTabContent]", ["axTabContent"], { "portal": { "alias": "axTabContent"; "required": false; }; }, {}, never, never, true, never>;
15
- }
16
-
17
10
  /**
18
11
  * @category
19
12
  * Represents an individual tab item in a tab component.
20
13
  */
21
14
  declare class AXTabItemComponent extends MXInteractiveComponent {
15
+ private readonly _drag;
16
+ private _reorderEnabled;
17
+ private _panTouchAction;
18
+ constructor();
22
19
  /**
23
20
  * Defines the text content to be displayed within the component.
24
21
  */
@@ -27,7 +24,13 @@ declare class AXTabItemComponent extends MXInteractiveComponent {
27
24
  * Defines a unique identifier for the component instance.
28
25
  */
29
26
  key: string;
30
- template: TemplateRef<unknown>;
27
+ private _panel?;
28
+ private _contentTemplate;
29
+ /**
30
+ * Template rendered for this tab's content area.
31
+ * Prefer `ng-template[axTabPanel]` so `renderMode="default"` can recreate panel state.
32
+ */
33
+ get template(): TemplateRef<unknown>;
31
34
  /**
32
35
  * Defines a custom template for the component's header.
33
36
  */
@@ -50,6 +53,12 @@ declare class AXTabItemComponent extends MXInteractiveComponent {
50
53
  */
51
54
  get active(): boolean;
52
55
  set active(value: boolean);
56
+ /** @ignore */
57
+ setReorderEnabled(enabled: boolean, delay?: number, touchAction?: 'none' | 'pan-x' | 'pan-y'): void;
58
+ /** @ignore */
59
+ private updateDragState;
60
+ /** @ignore */
61
+ private applyScrollTouchAction;
53
62
  /**
54
63
  * @ignore
55
64
  */
@@ -70,15 +79,77 @@ declare class AXTabItemComponent extends MXInteractiveComponent {
70
79
  top: number;
71
80
  };
72
81
  static ɵfac: i0.ɵɵFactoryDeclaration<AXTabItemComponent, never>;
73
- static ɵcmp: i0.ɵɵComponentDeclaration<AXTabItemComponent, "ax-tab-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; }; "key": { "alias": "key"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, { "disabledChange": "disabledChange"; "onClick": "onClick"; "onBlur": "onBlur"; "onFocus": "onFocus"; "activeChange": "activeChange"; }, never, ["ax-prefix", "ax-suffix", "ax-content"], true, never>;
82
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXTabItemComponent, "ax-tab-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; }; "key": { "alias": "key"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, { "disabledChange": "disabledChange"; "onClick": "onClick"; "onBlur": "onBlur"; "onFocus": "onFocus"; "activeChange": "activeChange"; }, ["_panel"], ["ax-prefix", "ax-suffix", "ax-content"], true, [{ directive: typeof i1.AXDragDirective; inputs: { "dragStartDelay": "dragStartDelay"; "dragClonedTemplate": "dragClonedTemplate"; }; outputs: {}; }]>;
74
83
  }
75
84
 
76
85
  declare class AXTabStripChangedEvent extends AXEvent {
77
86
  tab: AXTabItemComponent;
78
87
  index: number;
79
88
  }
89
+ /** Event emitted when tab items are reordered via drag and drop. */
90
+ declare class AXTabsReorderedEvent extends AXEvent {
91
+ tab: AXTabItemComponent;
92
+ previousIndex: number;
93
+ currentIndex: number;
94
+ }
80
95
  type AXTabLook = 'default' | 'pills' | 'pills-color' | 'with-line' | 'with-line-color' | 'classic' | 'custom';
81
96
  type AXTabLocation = 'top' | 'bottom' | 'start' | 'end';
97
+ type AXTabsRenderMode = 'default' | 'all-tabs' | 'on-demand';
98
+
99
+ declare class AXTabContentDirective implements OnDestroy {
100
+ private readonly viewContainerRef;
101
+ private readonly renderer;
102
+ private readonly panes;
103
+ private _portal;
104
+ private defaultView;
105
+ get portal(): TemplateRef<unknown> | undefined;
106
+ set portal(v: TemplateRef<unknown> | undefined);
107
+ /**
108
+ * Shows the given tab template using the specified render mode.
109
+ */
110
+ activate(template: TemplateRef<unknown> | undefined, mode: AXTabsRenderMode): void;
111
+ /**
112
+ * Ensures embedded views exist for every tab template (all-tabs mode).
113
+ */
114
+ preload(templates: TemplateRef<unknown>[]): void;
115
+ /**
116
+ * Removes panes whose tab templates are no longer present.
117
+ */
118
+ sync(templates: TemplateRef<unknown>[]): void;
119
+ /**
120
+ * Destroys all cached panes and clears the view container.
121
+ */
122
+ reset(): void;
123
+ ngOnDestroy(): void;
124
+ private destroyDefaultView;
125
+ private resetKeepAlivePanes;
126
+ private ensurePane;
127
+ private showPane;
128
+ private destroyPane;
129
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXTabContentDirective, never>;
130
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXTabContentDirective, "[axTabContent]", ["axTabContent"], { "portal": { "alias": "axTabContent"; "required": false; }; }, {}, never, never, true, never>;
131
+ }
132
+
133
+ /**
134
+ * Marks an `ng-template` as tab panel content. Use this instead of projecting
135
+ * components directly into `ax-content` when you need `renderMode="default"`
136
+ * to destroy and recreate panel state on each tab switch.
137
+ *
138
+ * @example
139
+ * ```html
140
+ * <ax-tab-item text="Account">
141
+ * <ng-template axTabPanel>
142
+ * <my-panel />
143
+ * </ng-template>
144
+ * </ax-tab-item>
145
+ * ```
146
+ */
147
+ declare class AXTabPanelDirective {
148
+ readonly template: TemplateRef<unknown>;
149
+ constructor(template: TemplateRef<unknown>);
150
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXTabPanelDirective, never>;
151
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXTabPanelDirective, "ng-template[axTabPanel]", never, {}, {}, never, never, true, never>;
152
+ }
82
153
 
83
154
  /**
84
155
  * @category
@@ -87,6 +158,9 @@ type AXTabLocation = 'top' | 'bottom' | 'start' | 'end';
87
158
  declare class AXTabsComponent extends MXBaseComponent implements AfterViewInit, AfterContentInit, OnDestroy {
88
159
  #private;
89
160
  private readonly renderer;
161
+ private readonly destroyRef;
162
+ private readonly _dropList;
163
+ private readonly _scroll;
90
164
  /**
91
165
  * @ignore
92
166
  */
@@ -101,6 +175,36 @@ declare class AXTabsComponent extends MXBaseComponent implements AfterViewInit,
101
175
  * @defaultValue 'bottom'
102
176
  */
103
177
  location: i0.InputSignal<AXTabLocation>;
178
+ /**
179
+ * Enables drag-and-drop reordering of tab items. Reordering starts only after the user
180
+ * presses and holds a tab for {@link reorderDelay} milliseconds; a quick swipe without
181
+ * holding scrolls the strip instead.
182
+ * @defaultValue false
183
+ */
184
+ reorderable: i0.InputSignalWithTransform<boolean, unknown>;
185
+ /**
186
+ * Press-and-hold duration in milliseconds before a tab can be dragged to reorder.
187
+ * After this delay the cursor changes to indicate reorder mode. Moving before the
188
+ * delay ends cancels reorder and allows swipe or pan scrolling instead.
189
+ * @defaultValue 250
190
+ */
191
+ reorderDelay: i0.InputSignal<number>;
192
+ /**
193
+ * Controls how tab content is rendered in the DOM.
194
+ *
195
+ * - `default` — Only the active tab's content is in the DOM. Switching tabs replaces content and does not preserve state.
196
+ * - `all-tabs` — All tab contents are rendered and kept in the DOM. State is preserved; higher memory use.
197
+ * - `on-demand` — Only the active tab is rendered initially. Other tabs are rendered on first visit and then kept; state is preserved.
198
+ *
199
+ * @defaultValue 'default'
200
+ */
201
+ renderMode: i0.InputSignal<AXTabsRenderMode>;
202
+ /**
203
+ * When true, stacks prefix, title, and suffix vertically inside each tab header
204
+ * instead of arranging them in a horizontal row.
205
+ * @defaultValue false
206
+ */
207
+ stacked: i0.InputSignalWithTransform<boolean, unknown>;
104
208
  /**
105
209
  * @defaultValue 'false'
106
210
  * Specifies whether the component should resize to fit its parent container.
@@ -114,12 +218,16 @@ declare class AXTabsComponent extends MXBaseComponent implements AfterViewInit,
114
218
  /**
115
219
  * The `AXTabContentDirective` associated with the tab.
116
220
  */
117
- content: AXTabContentDirective;
221
+ set content(value: AXTabContentDirective);
222
+ get content(): AXTabContentDirective;
223
+ private _content;
118
224
  private indicator;
119
225
  private zone;
120
226
  private platformId;
121
227
  /** @ignore */
122
228
  private _isUserInteraction;
229
+ /** @ignore */
230
+ private _clickSubscriptions;
123
231
  get items(): AXTabItemComponent[];
124
232
  /** @ignore */
125
233
  private _selectedItem;
@@ -129,12 +237,21 @@ declare class AXTabsComponent extends MXBaseComponent implements AfterViewInit,
129
237
  get selectedItem(): AXTabItemComponent;
130
238
  private changes;
131
239
  private activeTab;
240
+ private viewReady;
241
+ private lastRenderMode;
132
242
  /**
133
243
  * @event
134
244
  */
135
245
  onActiveTabChanged: EventEmitter<AXTabStripChangedEvent>;
246
+ /**
247
+ * Emitted when tab items are reordered via drag and drop after the press-and-hold
248
+ * delay has elapsed and the user drags a tab to a new position.
249
+ * @event
250
+ */
251
+ onTabsReordered: EventEmitter<AXTabsReorderedEvent>;
136
252
  /** @ignore */
137
253
  private get __hostClass();
254
+ constructor();
138
255
  /** @ignore */
139
256
  ngAfterContentInit(): void;
140
257
  /** @ignore */
@@ -142,22 +259,34 @@ declare class AXTabsComponent extends MXBaseComponent implements AfterViewInit,
142
259
  ngOnDestroy(): void;
143
260
  /** @ignore */
144
261
  private _bindOnClickEvent;
262
+ /** @ignore */
263
+ private _syncDragState;
264
+ /** @ignore */
265
+ private _applyReorder;
266
+ /** @ignore */
267
+ private _observeActiveTabForResize;
268
+ /** @ignore */
269
+ private scheduleIndicatorUpdate;
145
270
  /**
146
271
  * Activates the specified tab and updates the content.
147
272
  *
148
273
  * @param tab - The tab to select, either by index (number) or by component instance
149
274
  */
150
275
  select(tab: number | AXTabItemComponent): void;
276
+ /** @ignore */
277
+ private _renderContent;
278
+ /** @ignore */
279
+ private getTabIndicatorStats;
151
280
  private setIndicatorPosition;
152
281
  static ɵfac: i0.ɵɵFactoryDeclaration<AXTabsComponent, never>;
153
- static ɵcmp: i0.ɵɵComponentDeclaration<AXTabsComponent, "ax-tabs", never, { "look": { "alias": "look"; "required": false; "isSignal": true; }; "location": { "alias": "location"; "required": false; "isSignal": true; }; "fitParent": { "alias": "fitParent"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "content": { "alias": "content"; "required": false; }; }, { "onActiveTabChanged": "onActiveTabChanged"; }, ["_contentTabs"], ["ax-tab-item"], true, never>;
282
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXTabsComponent, "ax-tabs", never, { "look": { "alias": "look"; "required": false; "isSignal": true; }; "location": { "alias": "location"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "reorderDelay": { "alias": "reorderDelay"; "required": false; "isSignal": true; }; "renderMode": { "alias": "renderMode"; "required": false; "isSignal": true; }; "stacked": { "alias": "stacked"; "required": false; "isSignal": true; }; "fitParent": { "alias": "fitParent"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "content": { "alias": "content"; "required": false; }; }, { "onActiveTabChanged": "onActiveTabChanged"; "onTabsReordered": "onTabsReordered"; }, ["_contentTabs"], ["ax-tab-item"], true, [{ directive: typeof i1.AXDropListDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.AXHorizontalScrollDirective; inputs: {}; outputs: {}; }]>;
154
283
  }
155
284
 
156
285
  declare class AXTabsModule {
157
286
  static ɵfac: i0.ɵɵFactoryDeclaration<AXTabsModule, never>;
158
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXTabsModule, never, [typeof i1.CommonModule, typeof i2.PortalModule, typeof i3.AXDecoratorModule, typeof AXTabsComponent, typeof AXTabItemComponent, typeof AXTabContentDirective], [typeof AXTabsComponent, typeof AXTabItemComponent, typeof AXTabContentDirective]>;
287
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXTabsModule, never, [typeof i1$1.CommonModule, typeof i2$1.PortalModule, typeof i3.AXDecoratorModule, typeof AXTabsComponent, typeof AXTabItemComponent, typeof AXTabContentDirective, typeof AXTabPanelDirective], [typeof AXTabsComponent, typeof AXTabItemComponent, typeof AXTabContentDirective, typeof AXTabPanelDirective]>;
159
288
  static ɵinj: i0.ɵɵInjectorDeclaration<AXTabsModule>;
160
289
  }
161
290
 
162
- export { AXTabContentDirective, AXTabItemComponent, AXTabStripChangedEvent, AXTabsComponent, AXTabsModule };
163
- export type { AXTabLocation, AXTabLook };
291
+ export { AXTabContentDirective, AXTabItemComponent, AXTabPanelDirective, AXTabStripChangedEvent, AXTabsComponent, AXTabsModule, AXTabsReorderedEvent };
292
+ export type { AXTabLocation, AXTabLook, AXTabsRenderMode };