@acorex/components 20.4.13 → 20.4.14

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.
@@ -1,14 +1,16 @@
1
1
  import * as _acorex_components_conversation2 from '@acorex/components/conversation2';
2
2
  import * as _angular_core from '@angular/core';
3
- import { OnDestroy, ViewContainerRef, WritableSignal, Signal, Type, InjectionToken, TemplateRef, OnInit, EventEmitter, ElementRef, ModuleWithProviders, Provider } from '@angular/core';
4
- import { AXComponentCloseEvent, AXHtmlEvent, AXClosableComponent } from '@acorex/cdk/common';
3
+ import { OnDestroy, ViewContainerRef, WritableSignal, Signal, Type, InputSignal, InjectionToken, OnInit, EventEmitter, TemplateRef, ElementRef, ModuleWithProviders, Provider } from '@angular/core';
4
+ import { AXComponentCloseEvent, AXHtmlEvent, AXDataSource, AXClosableComponent } from '@acorex/cdk/common';
5
5
  import * as rxjs from 'rxjs';
6
6
  import { Observable } from 'rxjs';
7
7
  import { AXDialogService } from '@acorex/components/dialog';
8
- import { AXPopupService } from '@acorex/components/popup';
8
+ import { AXPopupService, AXPopupRef } from '@acorex/components/popup';
9
9
  import { AXUploaderChangedEvent } from '@acorex/cdk/uploader';
10
10
  import { AXPopoverComponent } from '@acorex/components/popover';
11
+ import { AXListComponent } from '@acorex/components/list';
11
12
  import { AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
13
+ import { AXBasePageComponent } from '@acorex/components/page';
12
14
  import { AXMapMarker } from '@acorex/components/map';
13
15
  import { SafeHtml } from '@angular/platform-browser';
14
16
  import * as i1 from '@angular/common';
@@ -267,25 +269,6 @@ interface AXStickerPayload {
267
269
  /** Emoji representation */
268
270
  emoji?: string;
269
271
  }
270
- /**
271
- * Contact message payload
272
- */
273
- interface AXContactPayload {
274
- /** Message type */
275
- type: 'contact';
276
- /** Contact ID */
277
- id: string;
278
- /** Contact name */
279
- name: string;
280
- /** Phone number */
281
- phoneNumber?: string;
282
- /** Email address */
283
- email?: string;
284
- /** URL address */
285
- url?: string;
286
- /** Avatar URL */
287
- avatar?: string;
288
- }
289
272
  /**
290
273
  * Poll message payload
291
274
  */
@@ -336,7 +319,7 @@ interface AXSystemPayload {
336
319
  /**
337
320
  * Union type of all message payloads
338
321
  */
339
- type AXMessagePayload = AXTextPayload | AXImagePayload | AXVideoPayload | AXAudioPayload | AXVoicePayload | AXFilePayload | AXLocationPayload | AXStickerPayload | AXContactPayload | AXPollPayload | AXSystemPayload;
322
+ type AXMessagePayload = AXTextPayload | AXImagePayload | AXVideoPayload | AXAudioPayload | AXVoicePayload | AXFilePayload | AXLocationPayload | AXStickerPayload | AXPollPayload | AXSystemPayload;
340
323
 
341
324
  /**
342
325
  * Message Model
@@ -344,7 +327,7 @@ type AXMessagePayload = AXTextPayload | AXImagePayload | AXVideoPayload | AXAudi
344
327
  */
345
328
 
346
329
  type AXMessageStatus = 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
347
- type AXMessageType = 'text' | 'image' | 'video' | 'audio' | 'voice' | 'file' | 'location' | 'sticker' | 'contact' | 'poll' | 'system' | string;
330
+ type AXMessageType = 'text' | 'image' | 'video' | 'audio' | 'voice' | 'file' | 'location' | 'sticker' | 'poll' | 'system' | string;
348
331
  /**
349
332
  * Reaction on a message
350
333
  */
@@ -548,6 +531,14 @@ interface AXConversationSettings {
548
531
  /** Custom settings */
549
532
  custom?: Record<string, unknown>;
550
533
  }
534
+ /**
535
+ * Conversation metadata
536
+ * Extensible map for app-specific conversation data.
537
+ */
538
+ interface AXConversationMetadata extends Record<string, unknown> {
539
+ /** Optional custom background CSS for message list */
540
+ messageListBackground?: string;
541
+ }
551
542
  /**
552
543
  * Main Conversation interface
553
544
  */
@@ -593,7 +584,7 @@ interface AXConversation {
593
584
  /** Draft message text */
594
585
  draft?: string;
595
586
  /** Custom metadata */
596
- metadata?: Record<string, unknown>;
587
+ metadata?: AXConversationMetadata;
597
588
  }
598
589
  /**
599
590
  * Typing indicator
@@ -2531,6 +2522,11 @@ declare class AXMessageActionRegistry {
2531
2522
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMessageActionRegistry>;
2532
2523
  }
2533
2524
 
2525
+ /**
2526
+ * Message Renderer Registry
2527
+ * Register custom message renderers for different message types
2528
+ */
2529
+
2534
2530
  /**
2535
2531
  * Message renderer capabilities
2536
2532
  */
@@ -2548,6 +2544,35 @@ interface AXMessageRendererCapabilities {
2548
2544
  /** Custom capabilities */
2549
2545
  custom?: Record<string, boolean>;
2550
2546
  }
2547
+ /**
2548
+ * Remote or binary content lifecycle inside a message renderer (image load, audio decode, etc.).
2549
+ * Use `none` when the renderer has no separate load phase (text, file row, etc.).
2550
+ */
2551
+ type AXMessageRendererContentState = 'none' | 'loading' | 'ready' | 'error';
2552
+ /**
2553
+ * Combined state for a chat message renderer: delivery pipeline plus optional content load.
2554
+ */
2555
+ interface AXMessageRendererState {
2556
+ /** Mirrors `message.status` (sending, sent, delivered, read, failed). */
2557
+ deliveryStatus: AXMessageStatus;
2558
+ /** Media / rich content load; set to `error` from `(error)` handlers on img, audio, video, etc. */
2559
+ contentState: AXMessageRendererContentState;
2560
+ }
2561
+ /**
2562
+ * Contract for components used as {@link AXMessageRenderer.component}.
2563
+ * The message list passes `{ message }`; each view exposes `rendererState` for templates and tooling.
2564
+ */
2565
+ interface AXMessageRendererComponent {
2566
+ readonly message: InputSignal<AXMessage>;
2567
+ readonly rendererState: Signal<AXMessageRendererState>;
2568
+ }
2569
+ /**
2570
+ * Contract for components used as {@link AXMessageRenderer.infoBarBanner}.
2571
+ * Conversation shell passes at least `{ message }`; renderers can pass additional inputs.
2572
+ */
2573
+ interface AXMessageInfoBarBannerComponent {
2574
+ readonly message: InputSignal<AXMessage>;
2575
+ }
2551
2576
  /**
2552
2577
  * Message renderer registration
2553
2578
  */
@@ -2555,7 +2580,12 @@ interface AXMessageRenderer {
2555
2580
  /** Unique type identifier */
2556
2581
  type: string;
2557
2582
  /** Angular component to render this message type */
2558
- component: Type<any>;
2583
+ component: Type<AXMessageRendererComponent>;
2584
+ /**
2585
+ * Optional component rendered as a dismissible banner under info-bar.
2586
+ * Useful for active/interactive message states (e.g. voice playback progress).
2587
+ */
2588
+ infoBarBanner?: Type<AXMessageInfoBarBannerComponent>;
2559
2589
  /** Function to determine if this renderer can handle a message */
2560
2590
  canHandle: (message: AXMessage) => boolean;
2561
2591
  /** Renderer capabilities */
@@ -2564,17 +2594,24 @@ interface AXMessageRenderer {
2564
2594
  displayName?: string;
2565
2595
  /** Icon name/class */
2566
2596
  icon?: string;
2597
+ /**
2598
+ * Optional composer actions co-located with this message type (e.g. pickers that produce this message).
2599
+ * Registered with {@link AXComposerActionRegistry} when the renderer is registered.
2600
+ * Use `AXRegistryConfiguration.composerActions` for actions not tied to a single message renderer.
2601
+ */
2602
+ composerActions?: AXComposerAction[];
2567
2603
  }
2568
2604
  /**
2569
2605
  * Message Renderer Registry Service
2570
2606
  */
2571
2607
  declare class AXMessageRendererRegistry {
2572
2608
  private readonly _renderers;
2609
+ private readonly _composerActions;
2573
2610
  constructor();
2574
2611
  /** All registered renderers */
2575
- readonly renderers: _angular_core.Signal<AXMessageRenderer[]>;
2612
+ readonly renderers: Signal<AXMessageRenderer[]>;
2576
2613
  /** Renderers sorted by priority (highest first) */
2577
- readonly sortedRenderers: _angular_core.Signal<AXMessageRenderer[]>;
2614
+ readonly sortedRenderers: Signal<AXMessageRenderer[]>;
2578
2615
  /**
2579
2616
  * Register a message renderer
2580
2617
  */
@@ -2839,7 +2876,7 @@ declare class AXConversationService {
2839
2876
  * @param conversationId - Conversation ID
2840
2877
  * @param metadata - Metadata to merge
2841
2878
  */
2842
- updateConversationMetadata(conversationId: string, metadata: Record<string, unknown>): Promise<void>;
2879
+ updateConversationMetadata(conversationId: string, metadata: AXConversationMetadata): Promise<void>;
2843
2880
  /**
2844
2881
  * Get conversation by ID
2845
2882
  * @param conversationId - Conversation ID
@@ -2853,7 +2890,7 @@ declare class AXConversationService {
2853
2890
  * @param metadata - Optional metadata (title, avatar, etc.)
2854
2891
  * @returns Created conversation
2855
2892
  */
2856
- createConversation(participantIds: string[], type: 'private' | 'group' | 'channel', metadata?: Record<string, unknown>): Promise<AXConversation>;
2893
+ createConversation(participantIds: string[], type: 'private' | 'group' | 'channel', metadata?: AXConversationMetadata): Promise<AXConversation>;
2857
2894
  /**
2858
2895
  * Get available users for conversation creation
2859
2896
  * @param query - Optional search query
@@ -3412,12 +3449,6 @@ interface AXConversationConfig {
3412
3449
  maxSidebarWidth?: number;
3413
3450
  /** Default sidebar width in pixels */
3414
3451
  defaultSidebarWidth?: number;
3415
- /** Virtual scroll item size in pixels */
3416
- virtualScrollItemSize?: number;
3417
- /** Virtual scroll minimum buffer in pixels */
3418
- virtualScrollMinBuffer?: number;
3419
- /** Virtual scroll maximum buffer in pixels */
3420
- virtualScrollMaxBuffer?: number;
3421
3452
  /** Filter cache size */
3422
3453
  filterCacheSize?: number;
3423
3454
  /** Maximum file size in bytes */
@@ -3430,6 +3461,12 @@ interface AXConversationConfig {
3430
3461
  minMessageLength?: number;
3431
3462
  /** Threshold for marking messages as read (0.0 to 1.0, default: 0.3) */
3432
3463
  messageReadThreshold?: number;
3464
+ /**
3465
+ * CSS `background` for the message list (`ax-conversation-message-list` area, all states: loading, empty, messages).
3466
+ * Use full shorthand, or a bare `https://...` / `/path/to.png` (wrapped as `url(...)` with `center/cover`).
3467
+ * Empty string = library default soft gradient. `transparent` or `none` = flat background.
3468
+ */
3469
+ messageListBackground?: string;
3433
3470
  }
3434
3471
 
3435
3472
  /**
@@ -3473,7 +3510,7 @@ declare const ERROR_HANDLER_CONFIG: InjectionToken<Partial<AXErrorHandlerConfig>
3473
3510
  /**
3474
3511
  * Additional message renderers configuration
3475
3512
  * Provide this token to add custom message renderers in addition to built-in ones
3476
- * Note: Built-in renderers (text, image, video, audio, voice, file, location, sticker, contact, system, fallback) are automatically registered
3513
+ * Note: Built-in renderers (text, system, fallback) are registered by default; other types are provided via plugins/constants.
3477
3514
  */
3478
3515
  declare const DEFAULT_MESSAGE_RENDERERS: InjectionToken<AXMessageRenderer[]>;
3479
3516
  /**
@@ -3510,7 +3547,10 @@ declare const DEFAULT_CONVERSATION_ITEM_ACTIONS: InjectionToken<AXConversationIt
3510
3547
  * Registry configuration interface
3511
3548
  */
3512
3549
  interface AXRegistryConfiguration {
3513
- /** Additional message renderers to register (built-in renderers are automatic) */
3550
+ /**
3551
+ * Additional message renderers to register (built-in renderers are automatic).
3552
+ * Each {@link AXMessageRenderer} may include optional `composerActions` for co-located send UX.
3553
+ */
3514
3554
  messageRenderers?: AXMessageRenderer[];
3515
3555
  /** Message actions to register by default */
3516
3556
  messageActions?: AXMessageAction[];
@@ -3573,6 +3613,14 @@ interface AXInfoBarActiveComponent {
3573
3613
  /** Component inputs */
3574
3614
  inputs?: Record<string, unknown>;
3575
3615
  }
3616
+ interface AXInfoBarActiveBanner {
3617
+ /** Message that owns this banner */
3618
+ message: AXMessage;
3619
+ /** Banner component */
3620
+ component: Type<AXMessageInfoBarBannerComponent>;
3621
+ /** Additional component inputs */
3622
+ inputs?: Record<string, unknown>;
3623
+ }
3576
3624
  /**
3577
3625
  * Info Bar Service
3578
3626
  * Manages info bar state and actions
@@ -3585,6 +3633,9 @@ declare class AXInfoBarService {
3585
3633
  /** Active component being shown in info-bar */
3586
3634
  private readonly _activeComponent;
3587
3635
  readonly activeComponent: _angular_core.Signal<AXInfoBarActiveComponent>;
3636
+ /** Active banner shown under info-bar */
3637
+ private readonly _activeBanner;
3638
+ readonly activeBanner: _angular_core.Signal<AXInfoBarActiveBanner>;
3588
3639
  /** Search query signal */
3589
3640
  private readonly _searchQuery;
3590
3641
  readonly searchQuery: _angular_core.Signal<string>;
@@ -3593,6 +3644,7 @@ declare class AXInfoBarService {
3593
3644
  /** Current search result index */
3594
3645
  private readonly _currentSearchIndex;
3595
3646
  readonly currentSearchIndex: _angular_core.Signal<number>;
3647
+ constructor();
3596
3648
  /**
3597
3649
  * Get actions for the active conversation
3598
3650
  */
@@ -3617,6 +3669,19 @@ declare class AXInfoBarService {
3617
3669
  * Hide the active component
3618
3670
  */
3619
3671
  hideComponent(): void;
3672
+ /**
3673
+ * Show message-owned banner under info-bar if renderer provides one
3674
+ */
3675
+ showMessageBanner(message: AXMessage, inputs?: Record<string, unknown>): void;
3676
+ /**
3677
+ * Update active banner inputs for a specific message
3678
+ */
3679
+ updateMessageBannerInputs(messageId: string, inputs: Record<string, unknown>): void;
3680
+ /**
3681
+ * Hide active banner. If messageId is provided, hide only when it matches.
3682
+ */
3683
+ hideMessageBanner(messageId?: string): void;
3684
+ isMessageBannerActive(messageId: string): boolean;
3620
3685
  /**
3621
3686
  * Toggle component visibility
3622
3687
  */
@@ -3917,6 +3982,8 @@ declare class AXInfoBarComponent {
3917
3982
  readonly activeConversation: _angular_core.Signal<AXConversation>;
3918
3983
  /** Active component from service */
3919
3984
  readonly activeComponent: _angular_core.Signal<AXInfoBarActiveComponent>;
3985
+ /** Active banner from service */
3986
+ readonly activeBanner: _angular_core.Signal<AXInfoBarActiveBanner>;
3920
3987
  /** Members popover reference */
3921
3988
  readonly membersPopoverRef: _angular_core.Signal<AXPopoverComponent>;
3922
3989
  /** Members popover target element */
@@ -3951,16 +4018,52 @@ declare class AXInfoBarComponent {
3951
4018
  getComponentInputs(): Record<string, any>;
3952
4019
  /** Handle close component */
3953
4020
  onCloseComponent(): void;
4021
+ getBannerInputs(): Record<string, unknown>;
4022
+ onCloseBanner(): void;
3954
4023
  /** Handle menu item click */
3955
4024
  onMenuItemClick(item: DropdownMenuItem): Promise<void>;
3956
4025
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInfoBarComponent, never>;
3957
4026
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXInfoBarComponent, "ax-conversation-info-bar", never, {}, { "avatarClick": "avatarClick"; "searchClick": "searchClick"; "searchQuery": "searchQuery"; "menuItemAction": "menuItemAction"; }, never, ["ax-prefix"], true, never>;
3958
4027
  }
3959
4028
 
4029
+ declare class AXForwardMessageDialogComponent implements OnInit {
4030
+ private readonly toastService;
4031
+ /**
4032
+ * Set by {@link AXPopupComponent} when opened via {@link AXPopupService} so the shell title can update.
4033
+ */
4034
+ readonly __popup__: _angular_core.InputSignal<AXPopupRef<any>>;
4035
+ conversationService: AXConversationService;
4036
+ message: AXMessage;
4037
+ readonly onClosed: EventEmitter<AXComponentCloseEvent>;
4038
+ readonly allConversations: _angular_core.WritableSignal<AXConversation[]>;
4039
+ readonly forwardSearchQuery: _angular_core.WritableSignal<string>;
4040
+ readonly selectedConversationIds: _angular_core.WritableSignal<string[]>;
4041
+ readonly forwardListEmptyTpl: _angular_core.Signal<TemplateRef<unknown>>;
4042
+ readonly forwardList: _angular_core.Signal<AXListComponent>;
4043
+ readonly forwardListDataSource: AXDataSource<unknown>;
4044
+ readonly canForward: _angular_core.Signal<boolean>;
4045
+ private readonly _syncPopupTitleEffect;
4046
+ ngOnInit(): void;
4047
+ onForwardSearchChange(value: string): void;
4048
+ conversationFromItem(item: unknown): AXConversation | null;
4049
+ isSelected(conversationId: string): boolean;
4050
+ getInitials(name: string): string;
4051
+ private getFilteredConversationsForForward;
4052
+ onCancel(): void;
4053
+ onForward(): Promise<void>;
4054
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXForwardMessageDialogComponent, never>;
4055
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXForwardMessageDialogComponent, "ax-forward-message-dialog", never, { "__popup__": { "alias": "__popup__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4056
+ }
4057
+
3960
4058
  declare class AXMessageListComponent implements OnDestroy {
3961
4059
  private readonly conversationService;
3962
4060
  private readonly messageListService;
3963
4061
  protected readonly config: AXConversationConfig;
4062
+ /**
4063
+ * Background for the message list scroll area from config, or the built-in soft gradient when unset/empty.
4064
+ * Set `messageListBackground` to `transparent` or `none` for a flat look.
4065
+ */
4066
+ messageListBackgroundStyle(): string;
3964
4067
  /** Custom avatar template for message list items */
3965
4068
  readonly avatarTemplate: _angular_core.InputSignal<TemplateRef<AXMessageAvatarTemplateContext>>;
3966
4069
  private readonly timeouts;
@@ -4027,7 +4130,7 @@ declare class AXMessageListComponent implements OnDestroy {
4027
4130
  /** Get forwarded text with sender and conversation info */
4028
4131
  getForwardedText(message: AXMessage): string;
4029
4132
  /** Resolve renderer component for message */
4030
- getRendererComponent(message: AXMessage): _angular_core.Type<any>;
4133
+ getRendererComponent(message: AXMessage): _angular_core.Type<_acorex_components_conversation2.AXMessageRendererComponent>;
4031
4134
  /** Provide inputs for the dynamic renderer */
4032
4135
  getRendererInputs(message: AXMessage): {
4033
4136
  message: AXMessage;
@@ -4107,8 +4210,6 @@ declare class AXMessageListComponent implements OnDestroy {
4107
4210
  * This is called when a new reply or forward is detected globally
4108
4211
  */
4109
4212
  private refreshCount;
4110
- /** Show thread view for a message */
4111
- showThread(message: AXMessage): void;
4112
4213
  /** Handle context menu opening for messages */
4113
4214
  handleMessageContextMenuOpening(event: AXContextMenuOpeningEvent, message: AXMessage): void;
4114
4215
  /** Handle context menu item click for messages */
@@ -4179,61 +4280,8 @@ declare class AXMessageListService {
4179
4280
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMessageListService>;
4180
4281
  }
4181
4282
 
4182
- declare class AXForwardMessageDialogComponent implements OnInit {
4183
- /** Toast service for notifications */
4184
- private readonly toastService;
4185
- /** Conversation service (passed via popup data) */
4186
- conversationService: AXConversationService;
4187
- /** Message to forward (passed via popup data) */
4188
- message: AXMessage;
4189
- /** Close event emitter for popup */
4190
- readonly onClosed: EventEmitter<AXComponentCloseEvent>;
4191
- /** Available conversations */
4192
- readonly availableConversations: _angular_core.WritableSignal<AXConversation[]>;
4193
- /** Selected conversation IDs */
4194
- readonly selectedConversationIds: _angular_core.WritableSignal<string[]>;
4195
- /** Can forward message */
4196
- readonly canForward: _angular_core.Signal<boolean>;
4197
- ngOnInit(): Promise<void>;
4198
- /** Handle cancel */
4199
- onCancel(): void;
4200
- /** Handle forward */
4201
- onForward(): Promise<void>;
4202
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXForwardMessageDialogComponent, never>;
4203
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXForwardMessageDialogComponent, "ax-forward-message-dialog", never, {}, {}, never, never, true, never>;
4204
- }
4205
-
4206
- declare class AXNewConversationDialogComponent implements OnInit {
4207
- /** Toast service for notifications */
4208
- private readonly toastService;
4209
- /** Conversation service (passed via popup data) */
4210
- conversationService: AXConversationService;
4211
- /** Close event emitter for popup */
4212
- readonly onClosed: EventEmitter<AXComponentCloseEvent>;
4213
- /** Available users */
4214
- readonly availableUsers: _angular_core.WritableSignal<AXParticipant[]>;
4215
- /** Selected user IDs */
4216
- readonly selectedUserIds: _angular_core.WritableSignal<string[]>;
4217
- /** Group title */
4218
- groupTitle: _angular_core.WritableSignal<string>;
4219
- /** Group avatar */
4220
- groupAvatar: _angular_core.WritableSignal<string>;
4221
- /** Is group conversation */
4222
- readonly isGroupConversation: _angular_core.Signal<boolean>;
4223
- /** Can create conversation */
4224
- readonly canCreate: _angular_core.Signal<boolean>;
4225
- ngOnInit(): Promise<void>;
4226
- /** Handle cancel */
4227
- onCancel(): void;
4228
- /** Handle create */
4229
- onCreate(): Promise<void>;
4230
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXNewConversationDialogComponent, never>;
4231
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXNewConversationDialogComponent, "ax-new-conversation-dialog", never, {}, {}, never, never, true, never>;
4232
- }
4233
-
4234
4283
  declare class AXSidebarService {
4235
4284
  private readonly conversationService;
4236
- private readonly popupService;
4237
4285
  private readonly config;
4238
4286
  private get registry();
4239
4287
  readonly searchQuery: _angular_core.WritableSignal<string>;
@@ -4254,7 +4302,6 @@ declare class AXSidebarService {
4254
4302
  setActiveTab(tabId: string): void;
4255
4303
  selectConversation(conversation: AXConversation): void;
4256
4304
  getBadgeValue(tabId: string): string | undefined;
4257
- openNewConversationDialog(): Promise<AXConversation | null>;
4258
4305
  /**
4259
4306
  * Load more conversations (pagination)
4260
4307
  */
@@ -4274,6 +4321,8 @@ declare class AXSidebarService {
4274
4321
  declare class AXSidebarComponent implements OnDestroy {
4275
4322
  readonly sidebar: AXSidebarService;
4276
4323
  protected readonly config: AXConversationConfig;
4324
+ private readonly conversationService;
4325
+ private readonly popupService;
4277
4326
  /** Conversation selected event */
4278
4327
  readonly conversationSelected: _angular_core.OutputEmitterRef<AXConversation>;
4279
4328
  /** Search debouncing */
@@ -4296,14 +4345,55 @@ declare class AXSidebarComponent implements OnDestroy {
4296
4345
  selectConversation(conversation: AXConversation): void;
4297
4346
  /** Get badge value for tab */
4298
4347
  getBadgeValue(tabId: string): string | undefined;
4299
- /** Open new conversation dialog */
4300
- onNewConversation(): Promise<void>;
4348
+ openNewConversationPopup(): Promise<void>;
4301
4349
  /** Handle infinite scroll threshold - delegate to service */
4302
4350
  onScrollThreshold(edge: 'top' | 'bottom'): Promise<void>;
4303
4351
  /** Cleanup on destroy */
4304
4352
  ngOnDestroy(): void;
4305
4353
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSidebarComponent, never>;
4306
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSidebarComponent, "ax-conversation-sidebar", never, {}, { "conversationSelected": "conversationSelected"; }, never, never, true, never>;
4354
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSidebarComponent, "ax-conversation-sidebar", never, {}, { "conversationSelected": "conversationSelected"; }, never, ["ax-suffix"], true, never>;
4355
+ }
4356
+
4357
+ type NewConversationWizardStep = 'selectUsers' | 'groupDetails';
4358
+ declare class AXNewConversationDialogComponent extends AXBasePageComponent {
4359
+ conversationService: AXConversationService;
4360
+ private readonly toastService;
4361
+ /**
4362
+ * Injected by {@link AXPopupComponent} when this dialog is opened via {@link AXPopupService}.
4363
+ * Required for `setTitle` / dynamic header — {@link AXBasePageComponent#setTitle} is otherwise unset.
4364
+ */
4365
+ readonly __popup__: _angular_core.InputSignal<AXPopupRef<any>>;
4366
+ readonly availableUsers: _angular_core.WritableSignal<AXParticipant[]>;
4367
+ readonly selectedUserIds: _angular_core.WritableSignal<string[]>;
4368
+ readonly groupTitle: _angular_core.WritableSignal<string>;
4369
+ readonly groupAvatar: _angular_core.WritableSignal<string>;
4370
+ readonly searchQuery: _angular_core.WritableSignal<string>;
4371
+ /** For 2+ users: step 1 = pick users, step 2 = title + avatar. */
4372
+ readonly wizardStep: _angular_core.WritableSignal<NewConversationWizardStep>;
4373
+ readonly showUserPickerStep: _angular_core.Signal<boolean>;
4374
+ readonly showGroupDetailsStep: _angular_core.Signal<boolean>;
4375
+ readonly showNextButton: _angular_core.Signal<boolean>;
4376
+ readonly showGroupBackButton: _angular_core.Signal<boolean>;
4377
+ readonly showCreateButton: _angular_core.Signal<boolean>;
4378
+ readonly canGoNextToGroupDetails: _angular_core.Signal<boolean>;
4379
+ readonly canCreate: _angular_core.Signal<boolean>;
4380
+ private readonly _resetWizardWhenSingleEffect;
4381
+ private readonly _syncPopupTitleEffect;
4382
+ readonly usersListEmptyTpl: _angular_core.Signal<TemplateRef<unknown>>;
4383
+ readonly usersList: _angular_core.Signal<AXListComponent>;
4384
+ readonly usersListDataSource: AXDataSource<unknown>;
4385
+ onCancel(): void;
4386
+ onSelectedUsersChange(ids: string[]): void;
4387
+ onNextToGroupDetails(): void;
4388
+ onBackFromGroupDetails(): void;
4389
+ onSearchChange(value: string): void;
4390
+ isUserSelected(id: string): boolean;
4391
+ userFromItem(item: unknown): AXParticipant | null;
4392
+ getInitials(name: string): string;
4393
+ private filteredUsers;
4394
+ onCreateConversation(): Promise<void>;
4395
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXNewConversationDialogComponent, never>;
4396
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXNewConversationDialogComponent, "ax-new-conversation-dialog", never, { "__popup__": { "alias": "__popup__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4307
4397
  }
4308
4398
 
4309
4399
  declare class AXInfiniteScrollDirective {
@@ -4621,31 +4711,6 @@ declare class AXAudioPickerComponent {
4621
4711
  declare const AX_CONVERSATION_COMPOSER_EMOJI_TAB: AXComposerTab;
4622
4712
  declare const AX_CONVERSATION_COMPOSER_STICKER_TAB: AXComposerTab;
4623
4713
 
4624
- declare class AXContactPickerComponent {
4625
- private readonly composerService;
4626
- private readonly conversationService;
4627
- readonly conversation: _angular_core.InputSignal<AXConversation>;
4628
- readonly onClose: _angular_core.OutputEmitterRef<void>;
4629
- contactName: string;
4630
- contactPhone: string;
4631
- contactEmail: string;
4632
- readonly searchQuery: _angular_core.WritableSignal<string>;
4633
- readonly selectedContact: _angular_core.WritableSignal<AXContactPayload>;
4634
- readonly allContacts: _angular_core.WritableSignal<AXContactPayload[]>;
4635
- readonly filteredContacts: _angular_core.Signal<AXContactPayload[]>;
4636
- readonly canSend: _angular_core.Signal<string | boolean>;
4637
- selectContact(contact: AXContactPayload): void;
4638
- sendContact(): Promise<void>;
4639
- cancel(): void;
4640
- getInitials(name: string): string;
4641
- /** Check if Contact Picker API is supported */
4642
- isContactPickerSupported(): boolean;
4643
- /** Open device contacts using Contact Picker API */
4644
- openDeviceContacts(): Promise<void>;
4645
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXContactPickerComponent, never>;
4646
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXContactPickerComponent, "ax-conversation-contact-picker", never, { "conversation": { "alias": "conversation"; "required": true; "isSignal": true; }; }, { "onClose": "onClose"; }, never, never, true, never>;
4647
- }
4648
-
4649
4714
  interface Emoji {
4650
4715
  char: string;
4651
4716
  name: string;
@@ -4903,8 +4968,7 @@ declare class AXVoiceRecorderComponent {
4903
4968
  * - 40: Image (media)
4904
4969
  * - 50: Video (media)
4905
4970
  * - 60: Audio (media)
4906
- * - 70: Contact (special)
4907
- * - 80: Location (special)
4971
+ * - 70: Location (special)
4908
4972
  */
4909
4973
 
4910
4974
  /**
@@ -4931,10 +4995,6 @@ declare const AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION: AXComposerAction;
4931
4995
  * Audio file picker action
4932
4996
  */
4933
4997
  declare const AX_CONVERSATION_COMPOSER_AUDIO_ACTION: AXComposerAction;
4934
- /**
4935
- * Contact picker action
4936
- */
4937
- declare const AX_CONVERSATION_COMPOSER_CONTACT_ACTION: AXComposerAction;
4938
4998
  /**
4939
4999
  * Location picker action
4940
5000
  */
@@ -4958,6 +5018,11 @@ declare class AXConversationInfoPanelComponent extends AXClosableComponent imple
4958
5018
  activeTab: string;
4959
5019
  editTitle: string;
4960
5020
  editAvatar: string;
5021
+ readonly backgroundPresets: Array<{
5022
+ id: string;
5023
+ label: string;
5024
+ value: string;
5025
+ }>;
4961
5026
  /** Get filtered members based on search */
4962
5027
  get filteredMembers(): AXParticipant[];
4963
5028
  /** Handle tab change */
@@ -4989,6 +5054,9 @@ declare class AXConversationInfoPanelComponent extends AXClosableComponent imple
4989
5054
  canSaveEdit(): boolean;
4990
5055
  /** Save edit */
4991
5056
  saveEdit(): Promise<void>;
5057
+ currentBackground(): string;
5058
+ isBackgroundSelected(value: string): boolean;
5059
+ applyMessageListBackground(value: string): Promise<void>;
4992
5060
  ngOnDestroy(): void;
4993
5061
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationInfoPanelComponent, never>;
4994
5062
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationInfoPanelComponent, "ax-conversation-info-panel", never, {}, { "onClosed": "onClosed"; }, never, never, true, never>;
@@ -5062,155 +5130,158 @@ declare const AX_CONVERSATION_INFO_BAR_DELETE_ACTION: AXInfoBarAction;
5062
5130
  */
5063
5131
  declare const AX_CONVERSATION_INFO_BAR_BLOCK_ACTION: AXInfoBarAction;
5064
5132
 
5065
- declare class AXAudioRendererComponent {
5066
- private readonly platformId;
5067
- /** Message to render */
5133
+ /**
5134
+ * Shared UI for message bubble bodies: sending / failed (with retry) and content load errors,
5135
+ * driven by {@link AXMessageRendererState}.
5136
+ */
5137
+ declare class AXConversationMessageRendererStateComponent {
5138
+ private readonly conversation;
5139
+ readonly rendererState: _angular_core.InputSignal<AXMessageRendererState>;
5068
5140
  readonly message: _angular_core.InputSignal<AXMessage>;
5069
- /** Audio element reference */
5141
+ /** Overrides default text when {@link AXMessageRendererState.contentState} is `error`. */
5142
+ readonly contentErrorLabel: _angular_core.InputSignal<string>;
5143
+ /** Overrides default text when delivery failed. */
5144
+ readonly deliveryFailedLabel: _angular_core.InputSignal<string>;
5145
+ /** Set false when the renderer shows content errors inline (e.g. inline media error state). */
5146
+ readonly showContentErrorChrome: _angular_core.InputSignal<boolean>;
5147
+ /** `inline` matches legacy media rows (e.g. audio): compact danger text under the player. */
5148
+ readonly contentErrorStyle: _angular_core.InputSignal<"inline" | "banner">;
5149
+ /** Icon class for content error (e.g. `fa-light fa-music` for audio). */
5150
+ readonly contentErrorIconClass: _angular_core.InputSignal<string>;
5151
+ /** `below`: render after main bubble body (typical for media). */
5152
+ readonly placement: _angular_core.InputSignal<"above" | "below">;
5153
+ readonly contentRetryEnabled: _angular_core.InputSignal<boolean>;
5154
+ readonly contentRetry: _angular_core.OutputEmitterRef<void>;
5155
+ readonly retryBusy: _angular_core.WritableSignal<boolean>;
5156
+ private readonly currentUser;
5157
+ private readonly isOwn;
5158
+ readonly showSending: _angular_core.Signal<boolean>;
5159
+ readonly showFailed: _angular_core.Signal<boolean>;
5160
+ readonly showContentError: _angular_core.Signal<boolean>;
5161
+ readonly hasVisibleChrome: _angular_core.Signal<boolean>;
5162
+ readonly showRetryButton: _angular_core.Signal<boolean>;
5163
+ readonly contentErrorText: _angular_core.Signal<string>;
5164
+ readonly deliveryFailedText: _angular_core.Signal<string>;
5165
+ onRetry(): Promise<void>;
5166
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageRendererStateComponent, never>;
5167
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationMessageRendererStateComponent, "ax-conversation-message-renderer-state", never, { "rendererState": { "alias": "rendererState"; "required": true; "isSignal": true; }; "message": { "alias": "message"; "required": true; "isSignal": true; }; "contentErrorLabel": { "alias": "contentErrorLabel"; "required": false; "isSignal": true; }; "deliveryFailedLabel": { "alias": "deliveryFailedLabel"; "required": false; "isSignal": true; }; "showContentErrorChrome": { "alias": "showContentErrorChrome"; "required": false; "isSignal": true; }; "contentErrorStyle": { "alias": "contentErrorStyle"; "required": false; "isSignal": true; }; "contentErrorIconClass": { "alias": "contentErrorIconClass"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "contentRetryEnabled": { "alias": "contentRetryEnabled"; "required": false; "isSignal": true; }; }, { "contentRetry": "contentRetry"; }, never, never, true, never>;
5168
+ }
5169
+
5170
+ declare class AXAudioRendererComponent implements AXMessageRendererComponent {
5171
+ private readonly platformId;
5172
+ private readonly destroyRef;
5173
+ private readonly infoBarService;
5070
5174
  private readonly audioElementRef;
5071
- /** Playing state */
5175
+ private readonly _contentState;
5176
+ readonly message: _angular_core.InputSignal<AXMessage>;
5177
+ readonly rendererState: _angular_core.Signal<{
5178
+ deliveryStatus: AXMessageStatus;
5179
+ contentState: AXMessageRendererContentState;
5180
+ }>;
5072
5181
  readonly isPlaying: _angular_core.WritableSignal<boolean>;
5073
- /** Muted state */
5074
5182
  readonly isMuted: _angular_core.WritableSignal<boolean>;
5075
- /** Current time in seconds */
5076
5183
  readonly currentTime: _angular_core.WritableSignal<number>;
5077
- /** Duration in seconds */
5078
5184
  readonly duration: _angular_core.WritableSignal<number>;
5079
- /** Error state */
5080
- readonly error: _angular_core.WritableSignal<boolean>;
5081
- /** Audio payload */
5082
5185
  readonly payload: _angular_core.Signal<AXAudioPayload>;
5083
- /** Audio URL */
5084
5186
  readonly audioUrl: _angular_core.Signal<string>;
5085
- /** Title */
5086
5187
  readonly title: _angular_core.Signal<string>;
5087
- /** Progress percentage */
5088
5188
  readonly progress: _angular_core.Signal<number>;
5089
- /** Formatted current time */
5090
5189
  readonly currentTimeFormatted: _angular_core.Signal<string>;
5091
- /** Formatted duration */
5092
5190
  readonly durationFormatted: _angular_core.Signal<string>;
5093
5191
  constructor();
5094
- /** Toggle play/pause */
5095
5192
  togglePlay(): void;
5096
- /** Toggle mute */
5097
5193
  toggleMute(): void;
5098
- /** Handle time update */
5099
5194
  onTimeUpdate(): void;
5100
- /** Handle audio ended */
5101
5195
  onEnded(): void;
5102
- /** Handle audio error */
5103
5196
  onError(): void;
5104
- /** Handle progress bar click */
5105
5197
  onProgressClick(event: MouseEvent): void;
5106
- /** Format time (seconds to MM:SS) */
5107
- private formatTime;
5198
+ private pausePlayback;
5199
+ private syncInfoBarBanner;
5108
5200
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXAudioRendererComponent, never>;
5109
5201
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXAudioRendererComponent, "ax-conversation-audio-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5110
5202
  }
5111
5203
 
5112
- declare class AXContactRendererComponent {
5113
- private readonly toastService;
5114
- /** Message to render */
5204
+ declare class AXAudioInfoBarBannerComponent implements AXMessageInfoBarBannerComponent {
5115
5205
  readonly message: _angular_core.InputSignal<AXMessage>;
5116
- /** Contact payload */
5117
- readonly payload: _angular_core.Signal<AXContactPayload>;
5118
- /** Get initials from name */
5119
- getInitials(name: string): string;
5120
- /** Copy contact information to clipboard */
5121
- copyContact(): Promise<void>;
5122
- /** Format contact information as text */
5123
- private formatContactText;
5124
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXContactRendererComponent, never>;
5125
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXContactRendererComponent, "ax-conversation-contact-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5206
+ readonly title: _angular_core.InputSignal<string>;
5207
+ readonly currentTime: _angular_core.InputSignal<number>;
5208
+ readonly duration: _angular_core.InputSignal<number>;
5209
+ private readonly payload;
5210
+ readonly resolvedTitle: _angular_core.Signal<string>;
5211
+ readonly progressPercent: _angular_core.Signal<number>;
5212
+ readonly timeLabel: _angular_core.Signal<string>;
5213
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXAudioInfoBarBannerComponent, never>;
5214
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXAudioInfoBarBannerComponent, "ax-conversation-audio-info-bar-banner", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "currentTime": { "alias": "currentTime"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5126
5215
  }
5127
5216
 
5128
- declare class AXFallbackRendererComponent {
5129
- /** Message to render */
5217
+ declare class AXFallbackRendererComponent implements AXMessageRendererComponent {
5218
+ private readonly _contentState;
5130
5219
  readonly message: _angular_core.InputSignal<AXMessage>;
5131
- /** Show raw data */
5132
- readonly showRaw: _angular_core.WritableSignal<boolean>;
5133
- /** Message type label */
5220
+ readonly rendererState: _angular_core.Signal<{
5221
+ deliveryStatus: AXMessageStatus;
5222
+ contentState: AXMessageRendererContentState;
5223
+ }>;
5134
5224
  readonly messageTypeLabel: _angular_core.Signal<string>;
5135
- /** Has payload data */
5136
- readonly hasPayloadData: _angular_core.Signal<boolean>;
5137
- /** Raw payload as JSON string */
5138
- readonly rawPayload: _angular_core.Signal<string>;
5139
- /** Toggle raw data display */
5140
- toggleRaw(): void;
5225
+ /** Same tone as content-error default in {@link AXConversationMessageRendererStateComponent}. */
5226
+ readonly fallbackDescription: _angular_core.Signal<string>;
5141
5227
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFallbackRendererComponent, never>;
5142
5228
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFallbackRendererComponent, "ax-conversation-fallback-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5143
5229
  }
5144
5230
 
5145
- declare class AXFileRendererComponent {
5146
- /** Message to render */
5231
+ declare class AXFileRendererComponent implements AXMessageRendererComponent {
5232
+ private readonly _contentState;
5147
5233
  readonly message: _angular_core.InputSignal<AXMessage>;
5148
- /** File payload */
5234
+ readonly rendererState: _angular_core.Signal<{
5235
+ deliveryStatus: AXMessageStatus;
5236
+ contentState: AXMessageRendererContentState;
5237
+ }>;
5149
5238
  readonly payload: _angular_core.Signal<AXFilePayload>;
5150
- /** File URL */
5151
5239
  readonly fileUrl: _angular_core.Signal<string>;
5152
- /** File name */
5153
5240
  readonly fileName: _angular_core.Signal<string>;
5154
- /** File size in bytes */
5155
5241
  readonly fileSize: _angular_core.Signal<number>;
5156
- /** MIME type */
5157
5242
  readonly mimeType: _angular_core.Signal<string>;
5158
- /** File extension */
5159
5243
  readonly fileExtension: _angular_core.Signal<string>;
5160
- /** File icon color based on extension */
5161
- readonly fileIconColor: _angular_core.Signal<string>;
5162
- /** Formatted file size */
5244
+ readonly swatchColor: _angular_core.Signal<string>;
5163
5245
  readonly formattedSize: _angular_core.Signal<string>;
5164
5246
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileRendererComponent, never>;
5165
5247
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileRendererComponent, "ax-conversation-file-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5166
5248
  }
5167
5249
 
5168
- declare class AXImageRendererComponent {
5250
+ declare class AXImageRendererComponent implements AXMessageRendererComponent {
5169
5251
  private readonly platformId;
5170
- /** Message to render */
5252
+ private readonly _contentState;
5171
5253
  readonly message: _angular_core.InputSignal<AXMessage>;
5172
- /** Loading state */
5173
- readonly loading: _angular_core.WritableSignal<boolean>;
5174
- /** Error state */
5175
- readonly error: _angular_core.WritableSignal<boolean>;
5176
- /** Image clicked event */
5254
+ readonly rendererState: _angular_core.Signal<{
5255
+ deliveryStatus: AXMessageStatus;
5256
+ contentState: AXMessageRendererContentState;
5257
+ }>;
5177
5258
  readonly imageClick: _angular_core.OutputEmitterRef<string>;
5178
- /** Image payload */
5179
5259
  readonly payload: _angular_core.Signal<AXImagePayload>;
5180
- /** Thumbnail URL */
5181
5260
  readonly thumbnailUrl: _angular_core.Signal<string>;
5182
- /** Alt text */
5183
5261
  readonly alt: _angular_core.Signal<string>;
5184
- /** Caption */
5185
5262
  readonly caption: _angular_core.Signal<string>;
5186
- /** Handle image load */
5263
+ constructor();
5187
5264
  onLoad(): void;
5188
- /** Handle image error */
5189
5265
  onError(): void;
5190
- /** Handle image click */
5191
5266
  onClick(): void;
5192
5267
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXImageRendererComponent, never>;
5193
5268
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXImageRendererComponent, "ax-conversation-image-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, { "imageClick": "imageClick"; }, never, never, true, never>;
5194
5269
  }
5195
5270
 
5196
- declare class AXLocationRendererComponent {
5197
- /** Message to render */
5271
+ declare class AXLocationRendererComponent implements AXMessageRendererComponent {
5272
+ private readonly _contentState;
5198
5273
  readonly message: _angular_core.InputSignal<AXMessage>;
5199
- /** Location payload */
5274
+ readonly rendererState: _angular_core.Signal<{
5275
+ deliveryStatus: AXMessageStatus;
5276
+ contentState: AXMessageRendererContentState;
5277
+ }>;
5200
5278
  readonly payload: _angular_core.Signal<AXLocationPayload>;
5201
- /** Latitude */
5202
5279
  readonly latitude: _angular_core.Signal<number>;
5203
- /** Longitude */
5204
5280
  readonly longitude: _angular_core.Signal<number>;
5205
- /** Location name */
5206
5281
  readonly locationName: _angular_core.Signal<string>;
5207
- /** Address */
5208
5282
  readonly address: _angular_core.Signal<string>;
5209
- /** Coordinates text */
5210
5283
  readonly coordinatesText: _angular_core.Signal<string>;
5211
- /** Google Maps URL */
5212
5284
  readonly mapsUrl: _angular_core.Signal<string>;
5213
- /** Markers for the map */
5214
5285
  readonly markers: _angular_core.Signal<{
5215
5286
  latitude: number;
5216
5287
  longitude: number;
@@ -5222,130 +5293,154 @@ declare class AXLocationRendererComponent {
5222
5293
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLocationRendererComponent, "ax-conversation-location-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5223
5294
  }
5224
5295
 
5225
- declare class AXStickerRendererComponent {
5226
- /** Message to render */
5296
+ declare class AXStickerRendererComponent implements AXMessageRendererComponent {
5297
+ private readonly _contentState;
5227
5298
  readonly message: _angular_core.InputSignal<AXMessage>;
5228
- /** Loading state */
5229
- readonly loading: _angular_core.WritableSignal<boolean>;
5230
- /** Error state */
5231
- readonly error: _angular_core.WritableSignal<boolean>;
5232
- /** Sticker payload */
5299
+ readonly rendererState: _angular_core.Signal<{
5300
+ deliveryStatus: AXMessageStatus;
5301
+ contentState: AXMessageRendererContentState;
5302
+ }>;
5233
5303
  readonly payload: _angular_core.Signal<AXStickerPayload>;
5234
- /** Sticker URL */
5235
5304
  readonly stickerUrl: _angular_core.Signal<string>;
5236
- /** Alt text */
5237
5305
  readonly alt: _angular_core.Signal<string>;
5238
- /** Handle image load */
5306
+ constructor();
5239
5307
  onLoad(): void;
5240
- /** Handle image error */
5241
5308
  onError(): void;
5242
5309
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXStickerRendererComponent, never>;
5243
5310
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXStickerRendererComponent, "ax-conversation-sticker-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5244
5311
  }
5245
5312
 
5246
- declare class AXSystemRendererComponent {
5247
- /** Message to render */
5313
+ declare class AXSystemRendererComponent implements AXMessageRendererComponent {
5314
+ private readonly _contentState;
5248
5315
  readonly message: _angular_core.InputSignal<AXMessage>;
5249
- /** System payload */
5316
+ readonly rendererState: _angular_core.Signal<{
5317
+ deliveryStatus: AXMessageStatus;
5318
+ contentState: AXMessageRendererContentState;
5319
+ }>;
5250
5320
  readonly payload: _angular_core.Signal<AXSystemPayload>;
5251
- /** Icon class based on system message type */
5252
- readonly iconClass: _angular_core.Signal<"fa-light fa-image" | "fa-light fa-user-plus" | "fa-light fa-user-minus" | "fa-light fa-pen" | "fa-light fa-info-circle">;
5321
+ readonly iconClass: _angular_core.Signal<string>;
5253
5322
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSystemRendererComponent, never>;
5254
5323
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSystemRendererComponent, "ax-conversation-system-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5255
5324
  }
5256
5325
 
5257
- declare class AXTextRendererComponent {
5326
+ declare class AXTextRendererComponent implements AXMessageRendererComponent {
5258
5327
  private readonly infoBarService;
5259
5328
  private readonly sanitizer;
5260
- /** Message to render */
5329
+ private readonly _contentState;
5261
5330
  readonly message: _angular_core.InputSignal<AXMessage>;
5262
- /** Search query from service */
5331
+ readonly rendererState: _angular_core.Signal<{
5332
+ deliveryStatus: AXMessageStatus;
5333
+ contentState: AXMessageRendererContentState;
5334
+ }>;
5263
5335
  readonly searchQuery: _angular_core.Signal<string>;
5264
- /** Formatted text with links and search highlights */
5265
5336
  readonly formattedText: _angular_core.Signal<SafeHtml>;
5266
- /** Escape HTML to prevent XSS */
5267
- private escapeHtml;
5268
- /** Convert URLs to clickable links */
5269
5337
  private linkify;
5270
- /** Highlight search query in text */
5271
5338
  private highlightSearch;
5272
5339
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTextRendererComponent, never>;
5273
5340
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTextRendererComponent, "ax-conversation-text-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5274
5341
  }
5275
5342
 
5276
- declare class AXVideoRendererComponent {
5343
+ /**
5344
+ * Video message: with thumbnail — tap poster to play inline; without thumbnail — native `<video>` only.
5345
+ */
5346
+ declare class AXVideoRendererComponent implements AXMessageRendererComponent {
5277
5347
  private readonly platformId;
5278
- /** Message to render */
5348
+ private readonly destroyRef;
5349
+ private readonly infoBarService;
5350
+ private readonly videoElementRef;
5351
+ private readonly _contentState;
5279
5352
  readonly message: _angular_core.InputSignal<AXMessage>;
5280
- /** Show video player */
5353
+ readonly rendererState: _angular_core.Signal<{
5354
+ deliveryStatus: AXMessageStatus;
5355
+ contentState: AXMessageRendererContentState;
5356
+ }>;
5281
5357
  readonly showPlayer: _angular_core.WritableSignal<boolean>;
5282
- /** Error state */
5283
- readonly error: _angular_core.WritableSignal<boolean>;
5284
- /** Video payload */
5358
+ readonly isPlaying: _angular_core.WritableSignal<boolean>;
5359
+ readonly currentTime: _angular_core.WritableSignal<number>;
5285
5360
  readonly payload: _angular_core.Signal<AXVideoPayload>;
5286
- /** Video URL */
5287
- readonly videoUrl: _angular_core.Signal<string>;
5288
- /** Thumbnail URL */
5361
+ readonly playbackUrl: _angular_core.Signal<string>;
5289
5362
  readonly thumbnailUrl: _angular_core.Signal<string>;
5290
- /** Duration in seconds */
5363
+ readonly hasThumbnail: _angular_core.Signal<boolean>;
5291
5364
  readonly duration: _angular_core.Signal<number>;
5292
- /** Caption */
5293
5365
  readonly caption: _angular_core.Signal<string>;
5294
- /** Play video */
5366
+ readonly durationLabel: _angular_core.Signal<string>;
5367
+ readonly showDurationBadge: _angular_core.Signal<boolean>;
5368
+ readonly playAriaLabel: _angular_core.Signal<string>;
5369
+ constructor();
5295
5370
  playVideo(): void;
5296
- /** Handle video error */
5371
+ onPlay(): void;
5372
+ onPause(): void;
5373
+ onTimeUpdate(): void;
5374
+ onEnded(): void;
5375
+ onThumbLoad(): void;
5376
+ onThumbError(): void;
5377
+ onVideoLoaded(): void;
5297
5378
  onError(): void;
5298
- /** Format duration (seconds to MM:SS) */
5299
- formatDuration(seconds: number): string;
5379
+ private pausePlayback;
5380
+ private syncInfoBarBanner;
5300
5381
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXVideoRendererComponent, never>;
5301
5382
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXVideoRendererComponent, "ax-conversation-video-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5302
5383
  }
5303
5384
 
5304
- declare class AXVoiceRendererComponent {
5305
- private readonly platformId;
5306
- /** Message to render */
5385
+ declare class AXVideoInfoBarBannerComponent implements AXMessageInfoBarBannerComponent {
5307
5386
  readonly message: _angular_core.InputSignal<AXMessage>;
5308
- /** Audio element reference */
5387
+ readonly title: _angular_core.InputSignal<string>;
5388
+ readonly currentTime: _angular_core.InputSignal<number>;
5389
+ readonly duration: _angular_core.InputSignal<number>;
5390
+ private readonly payload;
5391
+ readonly resolvedTitle: _angular_core.Signal<string>;
5392
+ readonly progressPercent: _angular_core.Signal<number>;
5393
+ readonly timeLabel: _angular_core.Signal<string>;
5394
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXVideoInfoBarBannerComponent, never>;
5395
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXVideoInfoBarBannerComponent, "ax-conversation-video-info-bar-banner", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "currentTime": { "alias": "currentTime"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5396
+ }
5397
+
5398
+ declare class AXVoiceRendererComponent implements AXMessageRendererComponent {
5399
+ private readonly platformId;
5400
+ private readonly destroyRef;
5401
+ private readonly infoBarService;
5309
5402
  private readonly audioElementRef;
5310
- /** Playing state */
5403
+ private readonly _contentState;
5404
+ readonly message: _angular_core.InputSignal<AXMessage>;
5405
+ readonly rendererState: _angular_core.Signal<{
5406
+ deliveryStatus: AXMessageStatus;
5407
+ contentState: AXMessageRendererContentState;
5408
+ }>;
5311
5409
  readonly isPlaying: _angular_core.WritableSignal<boolean>;
5312
- /** Current time in seconds */
5313
5410
  readonly currentTime: _angular_core.WritableSignal<number>;
5314
- /** Duration in seconds */
5315
5411
  readonly duration: _angular_core.WritableSignal<number>;
5316
- /** Error state */
5317
- readonly error: _angular_core.WritableSignal<boolean>;
5318
- /** Playback speed */
5319
5412
  readonly playbackSpeed: _angular_core.WritableSignal<number>;
5320
- /** Available playback speeds */
5321
5413
  private readonly speeds;
5322
- /** Voice payload */
5323
5414
  readonly payload: _angular_core.Signal<AXVoicePayload>;
5324
- /** Voice URL */
5325
5415
  readonly voiceUrl: _angular_core.Signal<string>;
5326
- /** Waveform data (simplified visualization) */
5327
5416
  readonly waveformBars: _angular_core.Signal<number[]>;
5328
- /** Active bar index based on progress */
5329
5417
  readonly activeBarIndex: _angular_core.Signal<number>;
5330
- /** Formatted current time or duration */
5331
- readonly currentTimeFormatted: _angular_core.Signal<string>;
5418
+ readonly timeLabel: _angular_core.Signal<string>;
5332
5419
  constructor();
5333
- /** Toggle play/pause */
5334
5420
  togglePlay(): void;
5335
- /** Cycle through playback speeds */
5336
5421
  cyclePlaybackSpeed(): void;
5337
- /** Handle time update */
5338
5422
  onTimeUpdate(): void;
5339
- /** Handle audio ended */
5340
5423
  onEnded(): void;
5341
- /** Handle audio error */
5342
5424
  onError(): void;
5343
- /** Format time (seconds to MM:SS) */
5344
- private formatTime;
5425
+ private pausePlayback;
5426
+ private syncInfoBarBanner;
5345
5427
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXVoiceRendererComponent, never>;
5346
5428
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXVoiceRendererComponent, "ax-conversation-voice-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
5347
5429
  }
5348
5430
 
5431
+ declare class AXVoiceInfoBarBannerComponent implements AXMessageInfoBarBannerComponent {
5432
+ readonly message: _angular_core.InputSignal<AXMessage>;
5433
+ readonly title: _angular_core.InputSignal<string>;
5434
+ readonly currentTime: _angular_core.InputSignal<number>;
5435
+ readonly duration: _angular_core.InputSignal<number>;
5436
+ private readonly payload;
5437
+ readonly resolvedTitle: _angular_core.Signal<string>;
5438
+ readonly progressPercent: _angular_core.Signal<number>;
5439
+ readonly timeLabel: _angular_core.Signal<string>;
5440
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXVoiceInfoBarBannerComponent, never>;
5441
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXVoiceInfoBarBannerComponent, "ax-conversation-voice-info-bar-banner", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "currentTime": { "alias": "currentTime"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5442
+ }
5443
+
5349
5444
  /**
5350
5445
  * Default Message Actions Plugin
5351
5446
  * Individual message action constants
@@ -5385,7 +5480,6 @@ declare const AX_CONVERSATION_VOICE_RENDERER: AXMessageRenderer;
5385
5480
  declare const AX_CONVERSATION_FILE_RENDERER: AXMessageRenderer;
5386
5481
  declare const AX_CONVERSATION_LOCATION_RENDERER: AXMessageRenderer;
5387
5482
  declare const AX_CONVERSATION_STICKER_RENDERER: AXMessageRenderer;
5388
- declare const AX_CONVERSATION_CONTACT_RENDERER: AXMessageRenderer;
5389
5483
  declare const AX_CONVERSATION_SYSTEM_RENDERER: AXMessageRenderer;
5390
5484
  declare const AX_CONVERSATION_FALLBACK_RENDERER: AXMessageRenderer;
5391
5485
 
@@ -6136,5 +6230,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
6136
6230
  */
6137
6231
  type AXErrorCode = typeof MESSAGE_ERRORS[keyof typeof MESSAGE_ERRORS]['code'] | typeof FILE_ERRORS[keyof typeof FILE_ERRORS]['code'] | typeof USER_ERRORS[keyof typeof USER_ERRORS]['code'] | typeof CONVERSATION_ERRORS[keyof typeof CONVERSATION_ERRORS]['code'] | typeof CONNECTION_ERRORS[keyof typeof CONNECTION_ERRORS]['code'] | typeof LOCATION_ERRORS[keyof typeof LOCATION_ERRORS]['code'] | typeof URL_ERRORS[keyof typeof URL_ERRORS]['code'] | typeof PERMISSION_ERRORS[keyof typeof PERMISSION_ERRORS]['code'];
6138
6232
 
6139
- export { AI_API_KEY, AXAIResponderService, AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXContactPickerComponent, AXContactRendererComponent, AXConversation2Module, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationMessageUtilsService, AXConversationService, AXConversationStoreService, AXConversationTabRegistry, AXEmojiTabComponent, AXErrorHandlerService, AXFallbackRendererComponent, AXFilePickerComponent, AXFileRendererComponent, AXFileUploadService, AXForwardMessageDialogComponent, AXImagePickerComponent, AXImageRendererComponent, AXIndexedDBConversationApi, AXIndexedDBMessageAIApi, AXIndexedDBMessageApi, AXIndexedDBRealtimeApi, AXIndexedDBUserApi, AXInfiniteScrollDirective, AXInfoBarActionRegistry, AXInfoBarComponent, AXInfoBarSearchComponent, AXInfoBarService, AXLocationPickerComponent, AXLocationRendererComponent, AXMessageActionRegistry, AXMessageApi, AXMessageListComponent, AXMessageListService, AXMessageRendererRegistry, AXNewConversationDialogComponent, AXPickerFooterComponent, AXPickerHeaderComponent, AXRealtimeApi, AXRegistryService, AXSidebarComponent, AXSidebarService, AXStickerRendererComponent, AXStickerTabComponent, AXSystemRendererComponent, AXTextRendererComponent, AXUserApi, AXVideoPickerComponent, AXVideoRendererComponent, AXVoiceRecorderComponent, AXVoiceRendererComponent, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_CONTACT_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONTACT_RENDERER, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_INFO_ACTION, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_COPY_ACTION, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, CONNECTION_ERRORS, CONVERSATION_CONFIG, CONVERSATION_ERRORS, DEFAULT_COMPOSER_ACTIONS, DEFAULT_COMPOSER_TABS, DEFAULT_CONVERSATION_ITEM_ACTIONS, DEFAULT_CONVERSATION_TABS, DEFAULT_INFO_BAR_ACTIONS, DEFAULT_MESSAGE_ACTIONS, DEFAULT_MESSAGE_RENDERERS, ERROR_HANDLER_CONFIG, ERROR_MESSAGES, FILE_ERRORS, LOCATION_ERRORS, MESSAGE_ERRORS, PERMISSION_ERRORS, REGISTRY_CONFIG, URL_ERRORS, USER_ERRORS, formatErrorMessage, getDefaultConversationItemActions, getErrorMessage, mergeWithDefaults, provideConversation, sanitizeInput, validateConversationId, validateEmail, validateFile, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
6140
- export type { AXAIResponderConfig, AXApiError, AXAudioPayload, AXBlockReportReason, AXCallEvent, AXComposerAction, AXComposerActionContext, AXComposerActiveComponent, AXComposerTab, AXConnectionEvent, AXConnectionOptions, AXConnectionStatus, AXContactPayload, AXConversation, AXConversationConfig, AXConversationCreateData, AXConversationError, AXConversationFilter, AXConversationFilters, AXConversationItemAction, AXConversationItemActionContext, AXConversationOptions, AXConversationPermissions, AXConversationSettings, AXConversationSettingsUpdate, AXConversationSort, AXConversationStatus, AXConversationTab, AXConversationType, AXConversationUpdateData, AXDeleteMessageCommand, AXEditMessageCommand, AXErrorCode, AXErrorHandlerConfig, AXErrorMessage, AXErrorSeverity, AXFilePayload, AXFileValidationResult, AXGroupedReaction, AXImagePayload, AXInfoBarAction, AXInfoBarActionContext, AXInfoBarActiveComponent, AXLink, AXLinkPreview, AXLocationPayload, AXMention, AXMessage, AXMessageAction, AXMessageActionContext, AXMessageAvatarTemplateContext, AXMessageForwardData, AXMessagePayload, AXMessageRenderer, AXMessageRendererCapabilities, AXMessageSearchFilters, AXMessageStatus, AXMessageType, AXNotificationEvent, AXPaginatedResult, AXPagination, AXParticipant, AXParticipantRole, AXParticipantStatus, AXParticipantUpdate, AXPinnedMessage, AXPollOption, AXPollPayload, AXPresenceStatus, AXPresenceUpdate, AXReaction, AXReadReceipt, AXRegistryConfiguration, AXRegistryItem, AXSendMessageCommand, AXStickerPayload, AXSystemPayload, AXTextFormat, AXTextPayload, AXTypingIndicator, AXUserProfileUpdate, AXUserRole, AXUserSearchFilters, AXValidationResult, AXVideoPayload, AXVoicePayload, DropdownMenuItem, FilePreview, FileUploadProgress };
6233
+ export { AI_API_KEY, AXAIResponderService, AXAudioInfoBarBannerComponent, AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXConversation2Module, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationService, AXConversationStoreService, AXConversationTabRegistry, AXEmojiTabComponent, AXErrorHandlerService, AXFallbackRendererComponent, AXFilePickerComponent, AXFileRendererComponent, AXFileUploadService, AXForwardMessageDialogComponent, AXImagePickerComponent, AXImageRendererComponent, AXIndexedDBConversationApi, AXIndexedDBMessageAIApi, AXIndexedDBMessageApi, AXIndexedDBRealtimeApi, AXIndexedDBUserApi, AXInfiniteScrollDirective, AXInfoBarActionRegistry, AXInfoBarComponent, AXInfoBarSearchComponent, AXInfoBarService, AXLocationPickerComponent, AXLocationRendererComponent, AXMessageActionRegistry, AXMessageApi, AXMessageListComponent, AXMessageListService, AXMessageRendererRegistry, AXNewConversationDialogComponent, AXPickerFooterComponent, AXPickerHeaderComponent, AXRealtimeApi, AXRegistryService, AXSidebarComponent, AXSidebarService, AXStickerRendererComponent, AXStickerTabComponent, AXSystemRendererComponent, AXTextRendererComponent, AXUserApi, AXVideoInfoBarBannerComponent, AXVideoPickerComponent, AXVideoRendererComponent, AXVoiceInfoBarBannerComponent, AXVoiceRecorderComponent, AXVoiceRendererComponent, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_INFO_ACTION, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_COPY_ACTION, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, CONNECTION_ERRORS, CONVERSATION_CONFIG, CONVERSATION_ERRORS, DEFAULT_COMPOSER_ACTIONS, DEFAULT_COMPOSER_TABS, DEFAULT_CONVERSATION_ITEM_ACTIONS, DEFAULT_CONVERSATION_TABS, DEFAULT_INFO_BAR_ACTIONS, DEFAULT_MESSAGE_ACTIONS, DEFAULT_MESSAGE_RENDERERS, ERROR_HANDLER_CONFIG, ERROR_MESSAGES, FILE_ERRORS, LOCATION_ERRORS, MESSAGE_ERRORS, PERMISSION_ERRORS, REGISTRY_CONFIG, URL_ERRORS, USER_ERRORS, formatErrorMessage, getDefaultConversationItemActions, getErrorMessage, mergeWithDefaults, provideConversation, sanitizeInput, validateConversationId, validateEmail, validateFile, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
6234
+ export type { AXAIResponderConfig, AXApiError, AXAudioPayload, AXBlockReportReason, AXCallEvent, AXComposerAction, AXComposerActionContext, AXComposerActiveComponent, AXComposerTab, AXConnectionEvent, AXConnectionOptions, AXConnectionStatus, AXConversation, AXConversationConfig, AXConversationCreateData, AXConversationError, AXConversationFilter, AXConversationFilters, AXConversationItemAction, AXConversationItemActionContext, AXConversationMetadata, AXConversationOptions, AXConversationPermissions, AXConversationSettings, AXConversationSettingsUpdate, AXConversationSort, AXConversationStatus, AXConversationTab, AXConversationType, AXConversationUpdateData, AXDeleteMessageCommand, AXEditMessageCommand, AXErrorCode, AXErrorHandlerConfig, AXErrorMessage, AXErrorSeverity, AXFilePayload, AXFileValidationResult, AXGroupedReaction, AXImagePayload, AXInfoBarAction, AXInfoBarActionContext, AXInfoBarActiveBanner, AXInfoBarActiveComponent, AXLink, AXLinkPreview, AXLocationPayload, AXMention, AXMessage, AXMessageAction, AXMessageActionContext, AXMessageAvatarTemplateContext, AXMessageForwardData, AXMessageInfoBarBannerComponent, AXMessagePayload, AXMessageRenderer, AXMessageRendererCapabilities, AXMessageRendererComponent, AXMessageRendererContentState, AXMessageRendererState, AXMessageSearchFilters, AXMessageStatus, AXMessageType, AXNotificationEvent, AXPaginatedResult, AXPagination, AXParticipant, AXParticipantRole, AXParticipantStatus, AXParticipantUpdate, AXPinnedMessage, AXPollOption, AXPollPayload, AXPresenceStatus, AXPresenceUpdate, AXReaction, AXReadReceipt, AXRegistryConfiguration, AXRegistryItem, AXSendMessageCommand, AXStickerPayload, AXSystemPayload, AXTextFormat, AXTextPayload, AXTypingIndicator, AXUserProfileUpdate, AXUserRole, AXUserSearchFilters, AXValidationResult, AXVideoPayload, AXVoicePayload, DropdownMenuItem, FilePreview, FileUploadProgress };