@acorex/components 22.2.11 → 22.2.12

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 (44) hide show
  1. package/emoji/README.md +3 -0
  2. package/emojipicker/README.md +3 -0
  3. package/fesm2022/acorex-components-bubble.mjs +71 -0
  4. package/fesm2022/acorex-components-bubble.mjs.map +1 -0
  5. package/fesm2022/{acorex-components-conversation-acorex-components-conversation-BTrREOwX.mjs → acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs} +650 -220
  6. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs.map +1 -0
  7. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DhSMH-wA.mjs → acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs} +2 -2
  8. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DhSMH-wA.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs.map} +1 -1
  9. package/fesm2022/acorex-components-conversation.mjs +1 -1
  10. package/fesm2022/acorex-components-data-table.mjs +14 -10
  11. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  12. package/fesm2022/acorex-components-emoji.mjs +74 -0
  13. package/fesm2022/acorex-components-emoji.mjs.map +1 -0
  14. package/fesm2022/acorex-components-emojipicker.mjs +425 -0
  15. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
  16. package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
  17. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
  18. package/fesm2022/acorex-components-message-status.mjs +71 -0
  19. package/fesm2022/acorex-components-message-status.mjs.map +1 -0
  20. package/fesm2022/acorex-components-message-time.mjs +36 -0
  21. package/fesm2022/acorex-components-message-time.mjs.map +1 -0
  22. package/fesm2022/acorex-components-message.mjs +120 -0
  23. package/fesm2022/acorex-components-message.mjs.map +1 -0
  24. package/fesm2022/acorex-components-reaction.mjs +144 -0
  25. package/fesm2022/acorex-components-reaction.mjs.map +1 -0
  26. package/fesm2022/acorex-components-tabs.mjs +2 -2
  27. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  28. package/inline-reaction/README.md +3 -0
  29. package/message/README.md +3 -0
  30. package/message-status/README.md +3 -0
  31. package/message-time/README.md +3 -0
  32. package/package.json +35 -3
  33. package/reaction/README.md +3 -0
  34. package/types/acorex-components-bubble.d.ts +31 -0
  35. package/types/acorex-components-conversation.d.ts +86 -14
  36. package/types/acorex-components-data-table.d.ts +1 -1
  37. package/types/acorex-components-emoji.d.ts +42 -0
  38. package/types/acorex-components-emojipicker.d.ts +146 -0
  39. package/types/acorex-components-inline-reaction.d.ts +52 -0
  40. package/types/acorex-components-message-status.d.ts +23 -0
  41. package/types/acorex-components-message-time.d.ts +19 -0
  42. package/types/acorex-components-message.d.ts +59 -0
  43. package/types/acorex-components-reaction.d.ts +85 -0
  44. package/fesm2022/acorex-components-conversation-acorex-components-conversation-BTrREOwX.mjs.map +0 -1
@@ -4371,6 +4371,7 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4371
4371
  private readonly platform;
4372
4372
  private readonly actionSheetService;
4373
4373
  private readonly ngZone;
4374
+ private readonly cdr;
4374
4375
  protected readonly config: Required<_acorex_components_conversation.AXConversationConfig>;
4375
4376
  /**
4376
4377
  * Background for the message list scroll area from config, or the built-in soft wash when unset/empty.
@@ -4399,6 +4400,18 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4399
4400
  readonly isAdaptiveWideLayout: _angular_core.WritableSignal<boolean>;
4400
4401
  /** While true, older history is being prepended — do not auto-scroll to the latest message. */
4401
4402
  private restoringScrollAfterPrepend;
4403
+ /**
4404
+ * Stick to the latest message across layout shifts (media decode, lazy outlets).
4405
+ * Cleared as soon as the user scrolls up — even within `scrollThreshold` —
4406
+ * otherwise ResizeObserver keeps yanking the feed back to the bottom.
4407
+ */
4408
+ private pinnedToBottom;
4409
+ /**
4410
+ * True while we assign `scrollTop`. Kept until the following animation frame
4411
+ * because some browsers dispatch `scroll` asynchronously after `scrollTop` writes.
4412
+ */
4413
+ private programmaticScroll;
4414
+ private programmaticScrollGen;
4402
4415
  private adaptiveLayoutResizeObserver?;
4403
4416
  private documentClickListener?;
4404
4417
  readonly availableReactions: _angular_core.WritableSignal<string[]>;
@@ -4421,6 +4434,21 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4421
4434
  readonly isGroupConversation: _angular_core.Signal<boolean>;
4422
4435
  /** Placeholder rows for the initial message list skeleton. */
4423
4436
  protected readonly loadingSkeletonItems: readonly [0, 1, 2, 3, 4, 5, 6, 7];
4437
+ /**
4438
+ * Conversation whose feed has already been pinned to the latest message.
4439
+ * Compared with the active id in `feedReady` so a chat switch hides the list
4440
+ * in the same render — before the effect that pins the new history.
4441
+ */
4442
+ private readonly pinnedConversationId;
4443
+ private feedRevealGeneration;
4444
+ private feedRevealRaf;
4445
+ /** False until this conversation is pinned to the bottom (never shows history from the top). */
4446
+ readonly feedReady: _angular_core.Signal<boolean>;
4447
+ /**
4448
+ * Keep the skeleton up until the feed is pinned. The real list stays
4449
+ * `visibility: hidden` underneath so bubbles never show through the cover.
4450
+ */
4451
+ readonly showOpenCover: _angular_core.Signal<boolean>;
4424
4452
  /** Whether the active conversation allows message reactions. */
4425
4453
  readonly reactionsEnabled: _angular_core.Signal<boolean>;
4426
4454
  /** Messages */
@@ -4444,6 +4472,15 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4444
4472
  * Setup intersection observer to mark messages as read when visible
4445
4473
  */
4446
4474
  private setupIntersectionObserver;
4475
+ /**
4476
+ * Keep the viewport stable when layout changes.
4477
+ * ResizeObserver runs after layout and before paint — apply scrollTop in the
4478
+ * callback (not rAF) so the browser never paints a jump.
4479
+ *
4480
+ * Near the bottom, pin to the latest message (media decode, lazy outlets).
4481
+ * Further up, only compensate rows that grew fully above the viewport.
4482
+ */
4483
+ private setupMediaScrollCompensation;
4447
4484
  /**
4448
4485
  * Mark message as read
4449
4486
  */
@@ -4481,18 +4518,32 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4481
4518
  /**
4482
4519
  * Keep the user's viewport on the same messages after older rows are inserted above.
4483
4520
  */
4484
- private restoreScrollPositionAfterPrepend;
4521
+ private applyPrependScrollRestore;
4485
4522
  private revealStuckDateSeparators;
4486
4523
  private syncDateSeparatorStuckState;
4487
4524
  private scheduleDateSeparatorFade;
4488
4525
  private clearDateSeparatorFadeTimer;
4489
- /** Check if user is near bottom of scroll */
4490
- private isUserNearBottom;
4491
- /**
4492
- * After switching chats, the template may still show loading (no #messagesContainer).
4493
- * Poll with rAF until the feed exists, then scroll after double rAF so scrollHeight is stable.
4494
- */
4495
- private scrollToBottomWhenContainerReady;
4526
+ /** Distance from the last pixel of the feed. */
4527
+ private distanceFromBottom;
4528
+ /** True when the viewport is at the latest message (not merely within `scrollThreshold`). */
4529
+ private isStuckToBottom;
4530
+ /**
4531
+ * Assign scrollTop without the listener treating it as a user scroll.
4532
+ * The flag stays set until the next frame so async `scroll` events are ignored.
4533
+ */
4534
+ private writeScrollTop;
4535
+ /** Pin the feed to the latest message before the next paint. */
4536
+ private pinFeedToBottom;
4537
+ /** Hide the feed and pin to the latest message before the first visible paint. */
4538
+ private beginFeedReveal;
4539
+ private cancelFeedReveal;
4540
+ /**
4541
+ * Pin to the latest message, then reveal. Two frames is enough — stick-to-bottom
4542
+ * holds later media growth. Waiting for loaders here left a blank gap after the skeleton.
4543
+ */
4544
+ private scheduleFeedPin;
4545
+ /** Start nearby lazy images so they decode while stick-to-bottom holds the viewport. */
4546
+ private primeOpenViewportMedia;
4496
4547
  /** Scroll to bottom */
4497
4548
  scrollToBottom(smooth?: boolean): void;
4498
4549
  /** Scroll to specific message */
@@ -5185,6 +5236,14 @@ declare class AXConversationPickerHeaderComponent {
5185
5236
  /** Extract OS-copied files from a paste event (e.g. Ctrl+V after copying a file in Explorer). */
5186
5237
  declare function filesFromClipboardEvent(event: ClipboardEvent): File[];
5187
5238
 
5239
+ interface AXConversationMediaDimensions {
5240
+ width: number;
5241
+ height: number;
5242
+ duration: number;
5243
+ }
5244
+ declare function probeImageDimensions(source: Blob | string): Promise<Pick<AXConversationMediaDimensions, 'width' | 'height'>>;
5245
+ declare function probeVideoMedia(source: Blob): Promise<AXConversationMediaDimensions>;
5246
+
5188
5247
  declare function formatFileSize(bytes: number): string;
5189
5248
  declare function formatDuration(seconds: number): string;
5190
5249
 
@@ -5329,13 +5388,18 @@ declare class AXConversationVideoFileTypeProvider extends AXFileTypeInfoProvider
5329
5388
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationVideoFileTypeProvider>;
5330
5389
  }
5331
5390
 
5332
- declare function videoItemFromUpload(file: File, result: AXConversationUploaderResult, duration: number): AXConversationVideoMediaItem;
5391
+ declare function videoItemFromUpload(file: File, result: AXConversationUploaderResult, duration: number, size?: {
5392
+ width?: number;
5393
+ height?: number;
5394
+ }): Promise<AXConversationVideoMediaItem>;
5333
5395
  declare function mergeVideoUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
5334
5396
  declare function applyVideoLocalPreview(payload: AXConversationMessagePayload, localUrl: string, mimeType?: string): AXConversationMessagePayload;
5335
5397
 
5336
5398
  interface AXConversationVideoFile extends AXConversationComposerPickerUploadItem {
5337
5399
  preview?: string;
5338
5400
  duration?: number;
5401
+ width?: number;
5402
+ height?: number;
5339
5403
  }
5340
5404
  declare class AXConversationVideoPickerComponent implements OnDestroy, AXConversationComposerActionComponent {
5341
5405
  private uploadsDismissed;
@@ -5693,7 +5757,10 @@ declare class AXConversationImageAttachmentComponent {
5693
5757
  private readonly document;
5694
5758
  readonly item: _angular_core.InputSignal<AXConversationImageMediaItem>;
5695
5759
  readonly alt: _angular_core.InputSignal<string>;
5760
+ /** When false, skip aspect-ratio reservation (gallery cells already have a fixed size). */
5761
+ readonly reserveAspect: _angular_core.InputSignal<boolean>;
5696
5762
  readonly ready: _angular_core.WritableSignal<boolean>;
5763
+ readonly aspectRatio: _angular_core.Signal<string>;
5697
5764
  private readonly mediaReference;
5698
5765
  private readonly resolvedUrl;
5699
5766
  readonly displayUrl: _angular_core.Signal<string>;
@@ -5702,7 +5769,7 @@ declare class AXConversationImageAttachmentComponent {
5702
5769
  onImageError(): void;
5703
5770
  toggleFullscreen(event: AXClickEvent): void;
5704
5771
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationImageAttachmentComponent, never>;
5705
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationImageAttachmentComponent, "ax-conversation-image-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5772
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationImageAttachmentComponent, "ax-conversation-image-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "reserveAspect": { "alias": "reserveAspect"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5706
5773
  }
5707
5774
 
5708
5775
  interface AXConversationPlaybackBannerInputs {
@@ -5813,6 +5880,8 @@ declare function syncPlaybackInfoBarBanner(infoBar: AXConversationInfoBarService
5813
5880
 
5814
5881
  declare class AXConversationVideoAttachmentComponent {
5815
5882
  readonly item: _angular_core.InputSignal<AXConversationVideoMediaItem>;
5883
+ /** When false, skip aspect-ratio reservation (gallery cells already have a fixed size). */
5884
+ readonly reserveAspect: _angular_core.InputSignal<boolean>;
5816
5885
  readonly playingChange: _angular_core.OutputEmitterRef<boolean>;
5817
5886
  readonly timeUpdate: _angular_core.OutputEmitterRef<number>;
5818
5887
  readonly durationChange: _angular_core.OutputEmitterRef<number>;
@@ -5824,6 +5893,7 @@ declare class AXConversationVideoAttachmentComponent {
5824
5893
  readonly playbackUrl: _angular_core.Signal<string>;
5825
5894
  readonly duration: _angular_core.Signal<number>;
5826
5895
  readonly durationLabel: _angular_core.Signal<string>;
5896
+ readonly aspectRatio: _angular_core.Signal<string>;
5827
5897
  togglePlay(): void;
5828
5898
  pause(): void;
5829
5899
  onLoadedMetadata(): void;
@@ -5833,7 +5903,7 @@ declare class AXConversationVideoAttachmentComponent {
5833
5903
  onEnded(): void;
5834
5904
  onError(): void;
5835
5905
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVideoAttachmentComponent, never>;
5836
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationVideoAttachmentComponent, "ax-conversation-video-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
5906
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationVideoAttachmentComponent, "ax-conversation-video-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "reserveAspect": { "alias": "reserveAspect"; "required": false; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
5837
5907
  }
5838
5908
 
5839
5909
  declare class AXConversationAudioRendererComponent extends AXConversationMessageRendererCopyHostComponent {
@@ -6011,9 +6081,10 @@ declare class AXConversationLocationRendererComponent extends AXConversationMess
6011
6081
  readonly mapFullscreenLabel: _angular_core.Signal<string>;
6012
6082
  readonly mapFullscreenIconClass: _angular_core.Signal<"fa-light fa-compress" | "fa-light fa-expand">;
6013
6083
  constructor();
6084
+ openInMaps(event: AXClickEvent): void;
6014
6085
  toggleMapFullscreen(event: AXClickEvent): void;
6015
6086
  private exitMapFullscreen;
6016
- private scheduleMapResize;
6087
+ protected scheduleMapResize(): void;
6017
6088
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationLocationRendererComponent, never>;
6018
6089
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationLocationRendererComponent, "ax-conversation-location-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
6019
6090
  }
@@ -6031,6 +6102,7 @@ declare class AXConversationStickerRendererComponent implements AXConversationMe
6031
6102
  private readonly resolvedUrl;
6032
6103
  readonly stickerUrl: _angular_core.Signal<string>;
6033
6104
  readonly alt: _angular_core.Signal<string>;
6105
+ readonly aspectRatio: _angular_core.Signal<string>;
6034
6106
  constructor();
6035
6107
  onLoad(): void;
6036
6108
  onError(): void;
@@ -6729,5 +6801,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
6729
6801
  */
6730
6802
  type AXConversationErrorCode = typeof AX_CONVERSATION_MESSAGE_ERRORS[keyof typeof AX_CONVERSATION_MESSAGE_ERRORS]['code'] | typeof AX_CONVERSATION_FILE_ERRORS[keyof typeof AX_CONVERSATION_FILE_ERRORS]['code'] | typeof AX_CONVERSATION_USER_ERRORS[keyof typeof AX_CONVERSATION_USER_ERRORS]['code'] | typeof AX_CONVERSATION_ERRORS[keyof typeof AX_CONVERSATION_ERRORS]['code'] | typeof AX_CONVERSATION_CONNECTION_ERRORS[keyof typeof AX_CONVERSATION_CONNECTION_ERRORS]['code'] | typeof AX_CONVERSATION_LOCATION_ERRORS[keyof typeof AX_CONVERSATION_LOCATION_ERRORS]['code'] | typeof AX_CONVERSATION_URL_ERRORS[keyof typeof AX_CONVERSATION_URL_ERRORS]['code'];
6731
6803
 
6732
- export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationDeleteDialogComponent, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerOptionsComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, 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_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, 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_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_JUMBO_EMOJI_MAX, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, countLoneEmojis, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemAsAudioMedia, fileItemFromUpload, filesFromClipboardEvent, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getActiveComposerPickerPasteHandler, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isConversationRoomCreator, isGenericPrivateConversationTitle, isGridMediaCategory, isGroupLikeConversation, isJumboEmojiText, isJumboEmojiTextMessage, isMessageDeliveryPending, isMessageListThemeBackground, isMessageVisibleAfterHistoryCutoff, isNonPersistableMediaUrl, isPickerItemReadyToSend, isPlainChromeMessage, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, listTextGraphemes, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickEarliestJoinedParticipant, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerComposerPickerPasteHandler, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageChrome, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, sortUsersForForward, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, usesDefaultMessageListWallpaper, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
6733
- export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDateSeparatorKind, AXConversationDeleteDialogMode, AXConversationDeleteDialogResult, AXConversationDeleteMessageCommand, AXConversationDeleteOptions, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationForwardUserSortEntry, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageChrome, AXConversationMessageClusterRole, AXConversationMessageDateGroup, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationOutletSkeleton, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPickerPasteHandler, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSidebarTabsOrientation, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
6804
+ export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationDeleteDialogComponent, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerOptionsComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, 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_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, 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_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_JUMBO_EMOJI_MAX, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, countLoneEmojis, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemAsAudioMedia, fileItemFromUpload, filesFromClipboardEvent, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getActiveComposerPickerPasteHandler, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isConversationRoomCreator, isGenericPrivateConversationTitle, isGridMediaCategory, isGroupLikeConversation, isJumboEmojiText, isJumboEmojiTextMessage, isMessageDeliveryPending, isMessageListThemeBackground, isMessageVisibleAfterHistoryCutoff, isNonPersistableMediaUrl, isPickerItemReadyToSend, isPlainChromeMessage, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, listTextGraphemes, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickEarliestJoinedParticipant, pickerItemToMediaReference, pickerItemToUploadResult, probeImageDimensions, probeVideoMedia, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerComposerPickerPasteHandler, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageChrome, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, sortUsersForForward, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, usesDefaultMessageListWallpaper, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
6805
+ export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDateSeparatorKind, AXConversationDeleteDialogMode, AXConversationDeleteDialogResult, AXConversationDeleteMessageCommand, AXConversationDeleteOptions, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationForwardUserSortEntry, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaDimensions, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageChrome, AXConversationMessageClusterRole, AXConversationMessageDateGroup, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationOutletSkeleton, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPickerPasteHandler, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSidebarTabsOrientation, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
@@ -212,7 +212,7 @@ declare abstract class AXBaseDataTable extends MXBaseComponent {
212
212
  */
213
213
  getColumnHighlightColor(column: AXDataTableColumnComponent): AXDataTableRowColorType | null;
214
214
  /**
215
- * Returns the CSS class of a highlighted column, applied to its header and body cells.
215
+ * Returns column CSS classes for header and body cells (`cssClass` + temporary highlight).
216
216
  */
217
217
  getColumnCssClass(column: AXDataTableColumnComponent): string;
218
218
  /**
@@ -0,0 +1,42 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { AXEmoji } from '@acorex/core/constants';
3
+
4
+ /**
5
+ * Renders a single emoji using its Unicode character from metadata.
6
+ *
7
+ * @category Components
8
+ */
9
+ declare class AXEmojiComponent {
10
+ /**
11
+ * Emoji metadata to render.
12
+ */
13
+ readonly emoji: _angular_core.InputSignal<AXEmoji>;
14
+ /**
15
+ * Emoji rendering style.
16
+ * - `google`: Noto Color Emoji (Android/Google look) on all platforms, including Windows.
17
+ * - `native`: OS default fonts (Segoe UI Emoji on Windows).
18
+ *
19
+ * @defaultValue 'google'
20
+ */
21
+ readonly appearance: _angular_core.InputSignal<"google" | "native">;
22
+ /**
23
+ * Rendered size in pixels.
24
+ *
25
+ * @defaultValue 20
26
+ */
27
+ readonly size: _angular_core.InputSignal<number>;
28
+ /** Unicode glyph to display. */
29
+ protected readonly glyph: _angular_core.Signal<string>;
30
+ /** Accessible label sourced from emoji metadata. */
31
+ protected readonly ariaLabel: _angular_core.Signal<string>;
32
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEmojiComponent, never>;
33
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXEmojiComponent, "ax-emoji", never, { "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
34
+ }
35
+
36
+ declare class AXEmojiModule {
37
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEmojiModule, never>;
38
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXEmojiModule, never, [typeof AXEmojiComponent], [typeof AXEmojiComponent]>;
39
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXEmojiModule>;
40
+ }
41
+
42
+ export { AXEmojiComponent, AXEmojiModule };
@@ -0,0 +1,146 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { AXValueChangedEvent } from '@acorex/cdk/common';
3
+ import { AXGestureEvent } from '@acorex/cdk/gesture';
4
+ import { AXTabStripChangedEvent } from '@acorex/components/tabs';
5
+ import { AXEmoji, AXEmojiCategory, AXEmojiPickerCategoryId, AXEmojiCategoryMeta } from '@acorex/core/constants';
6
+
7
+ /**
8
+ * Telegram-style emoji picker with category tabs, search, and recent emojis.
9
+ *
10
+ * @category Components
11
+ */
12
+ declare class AXEmojiPickerComponent {
13
+ private readonly hostRef;
14
+ private readonly destroyRef;
15
+ /** Emoji entries available in the picker. */
16
+ readonly items: _angular_core.InputSignal<readonly AXEmoji[]>;
17
+ /** Rendered emoji size in the grid. */
18
+ readonly size: _angular_core.InputSignal<number>;
19
+ /**
20
+ * Emoji rendering style passed to {@link AXEmojiComponent}.
21
+ * `google` uses Noto Color Emoji (Android/Google look) on Windows too.
22
+ *
23
+ * @defaultValue 'google'
24
+ */
25
+ readonly appearance: _angular_core.InputSignal<"google" | "native">;
26
+ /** Whether the search box is shown. */
27
+ readonly showSearch: _angular_core.InputSignal<boolean>;
28
+ /** Whether the recent category tab is shown. */
29
+ readonly showRecent: _angular_core.InputSignal<boolean>;
30
+ /** Number of emoji columns in the virtualized grid. */
31
+ readonly columns: _angular_core.InputSignal<number>;
32
+ /** Search box placeholder text. */
33
+ readonly searchPlaceholder: _angular_core.InputSignal<string>;
34
+ /** Unicode emoji group categories to hide from tabs and results. */
35
+ readonly excludeCategories: _angular_core.InputSignal<readonly AXEmojiCategory[]>;
36
+ /** `AXEmoji.code` values to hide (e.g. `1f595`). */
37
+ readonly excludeCodes: _angular_core.InputSignal<readonly string[]>;
38
+ /** `AXEmoji.unicode` glyph values to hide (e.g. `🖕`). */
39
+ readonly excludeUnicode: _angular_core.InputSignal<readonly string[]>;
40
+ /** Emits when the user selects an emoji. */
41
+ readonly selected: _angular_core.OutputEmitterRef<AXEmoji>;
42
+ /**
43
+ * Recently used emojis supplied by the parent (e.g. API, LocalStorage).
44
+ * Rendered in the Recent tab when {@link showRecent} is enabled.
45
+ */
46
+ readonly recentItems: _angular_core.InputSignal<readonly AXEmoji[]>;
47
+ /** Emits the updated recent list after the user selects an allowed emoji. */
48
+ readonly recentChanged: _angular_core.OutputEmitterRef<readonly AXEmoji[]>;
49
+ /** Current search query. */
50
+ protected readonly searchQuery: _angular_core.WritableSignal<string>;
51
+ /** Active category tab. */
52
+ protected readonly activeCategoryId: _angular_core.WritableSignal<AXEmojiPickerCategoryId>;
53
+ private readonly containerWidth;
54
+ protected readonly effectiveColumns: _angular_core.Signal<number>;
55
+ protected readonly availableWidthCss: _angular_core.Signal<string>;
56
+ constructor();
57
+ /** Items after picker exclusions are applied. */
58
+ protected readonly filteredItems: _angular_core.Signal<readonly AXEmoji[]>;
59
+ private readonly categoryIndex;
60
+ /** Recent items after active exclusions are applied for display. */
61
+ protected readonly visibleRecentItems: _angular_core.Signal<AXEmoji[]>;
62
+ protected onCategorySwipe(event: AXGestureEvent): void;
63
+ /** Visible category tabs. */
64
+ protected readonly categories: _angular_core.Signal<readonly AXEmojiCategoryMeta[]>;
65
+ /** Emojis shown in the current view (category or search results). */
66
+ protected readonly visibleEmojis: _angular_core.Signal<readonly AXEmoji[]>;
67
+ /** Rows used by the virtual scroll viewport. */
68
+ protected readonly emojiRows: _angular_core.Signal<readonly (readonly AXEmoji[])[]>;
69
+ /** Virtual scroll row height in pixels. */
70
+ protected readonly rowHeight: _angular_core.Signal<number>;
71
+ /** Whether the user is searching. */
72
+ protected readonly isSearching: _angular_core.Signal<boolean>;
73
+ /** Whether the current view has no emojis. */
74
+ protected readonly isEmpty: _angular_core.Signal<boolean>;
75
+ /** Keeps the active tab valid when exclusions change. */
76
+ private readonly syncActiveCategory;
77
+ /** Selects a category tab and clears search. */
78
+ protected selectCategory(categoryId: AXEmojiPickerCategoryId): void;
79
+ /** Whether the given category tab is active. */
80
+ protected isCategoryActive(categoryId: AXEmojiPickerCategoryId): boolean;
81
+ /** Whether the category tab is the virtual recent group. */
82
+ protected isRecentCategory(categoryId: AXEmojiPickerCategoryId): boolean;
83
+ /** Syncs the active emoji category when a tab is selected. */
84
+ protected onCategoryTabChanged(event: AXTabStripChangedEvent): void;
85
+ /** Updates the search query from the search box. */
86
+ protected onSearchChanged(event: AXValueChangedEvent<string>): void;
87
+ /** Emits the selected emoji and notifies the parent of the updated recent list. */
88
+ protected selectEmoji(emoji: AXEmoji): void;
89
+ /** @ignore */
90
+ protected trackRow(index: number, row: readonly AXEmoji[]): string;
91
+ private rememberRecent;
92
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEmojiPickerComponent, never>;
93
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXEmojiPickerComponent, "ax-emoji-picker", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "showRecent": { "alias": "showRecent"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "excludeCategories": { "alias": "excludeCategories"; "required": false; "isSignal": true; }; "excludeCodes": { "alias": "excludeCodes"; "required": false; "isSignal": true; }; "excludeUnicode": { "alias": "excludeUnicode"; "required": false; "isSignal": true; }; "recentItems": { "alias": "recentItems"; "required": false; "isSignal": true; }; }, { "selected": "selected"; "recentChanged": "recentChanged"; }, never, never, true, never>;
94
+ }
95
+
96
+ /** Maximum number of emojis kept in the recent list. */
97
+ declare const RECENT_EMOJI_LIMIT = 20;
98
+ /** Grid cell size in px (`--ax-comp-emoji-picker-cell-size`). */
99
+ declare const EMOJI_PICKER_CELL_SIZE_PX = 36;
100
+ /** Grid cell size in px on narrow viewports. */
101
+ declare const EMOJI_PICKER_CELL_SIZE_PX_COMPACT = 32;
102
+ /** Gap between grid cells in px (`--ax-comp-emoji-picker-cell-gap`). */
103
+ declare const EMOJI_PICKER_CELL_GAP_PX = 2;
104
+ /** Horizontal padding around the emoji grid in px. */
105
+ declare const EMOJI_PICKER_GRID_PADDING_PX = 24;
106
+ /** Minimum column count. */
107
+ declare const EMOJI_PICKER_MIN_COLUMNS = 1;
108
+ /** Nearest ancestor that participates in layout (skips `display: contents`). */
109
+ declare function getEmojiPickerLayoutContainer(element: HTMLElement): HTMLElement;
110
+ /**
111
+ * Available width for the picker grid.
112
+ * Uses the tightest ancestor content box and the visible viewport slot so an
113
+ * overflowing parent cannot keep an 8-column grid that is clipped off-screen.
114
+ */
115
+ declare function resolveEmojiPickerContainerWidth(element: HTMLElement): number;
116
+ /** Resolves column count from container width while keeping a fixed cell size and gap. */
117
+ declare function resolveEmojiPickerColumns(containerWidth: number, requested: number): number;
118
+ /** Maximum number of emojis returned by search. */
119
+ declare const SEARCH_RESULT_LIMIT = 200;
120
+ /** User-defined exclusions for picker emoji lists. */
121
+ interface AXEmojiPickerFilter {
122
+ /** Unicode emoji group categories to hide from tabs and results. */
123
+ readonly excludeCategories?: readonly AXEmojiCategory[];
124
+ /** `AXEmoji.code` values to hide (hyphen-separated code points, e.g. `1f595`). */
125
+ readonly excludeCodes?: readonly string[];
126
+ /** `AXEmoji.unicode` glyph values to hide (e.g. `👋`). */
127
+ readonly excludeUnicode?: readonly string[];
128
+ }
129
+ /** Applies picker exclusions and default people-body curation. */
130
+ declare function filterPickerItems(items: readonly AXEmoji[], filter?: AXEmojiPickerFilter): readonly AXEmoji[];
131
+ /**
132
+ * Builds a category index for picker rendering.
133
+ * Expects items to be pre-filtered with {@link filterPickerItems}.
134
+ */
135
+ declare function buildEmojiPickerIndex(items: readonly AXEmoji[]): ReadonlyMap<AXEmojiCategory, readonly AXEmoji[]>;
136
+ /** Searches pre-filtered emoji metadata by name and keywords. */
137
+ declare function searchPickerEmojis(items: readonly AXEmoji[], query: string, limit?: number): readonly AXEmoji[];
138
+
139
+ declare class AXEmojiPickerModule {
140
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEmojiPickerModule, never>;
141
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXEmojiPickerModule, never, [typeof AXEmojiPickerComponent], [typeof AXEmojiPickerComponent]>;
142
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXEmojiPickerModule>;
143
+ }
144
+
145
+ export { AXEmojiPickerComponent, AXEmojiPickerModule, EMOJI_PICKER_CELL_GAP_PX, EMOJI_PICKER_CELL_SIZE_PX, EMOJI_PICKER_CELL_SIZE_PX_COMPACT, EMOJI_PICKER_GRID_PADDING_PX, EMOJI_PICKER_MIN_COLUMNS, RECENT_EMOJI_LIMIT, SEARCH_RESULT_LIMIT, buildEmojiPickerIndex, filterPickerItems, getEmojiPickerLayoutContainer, resolveEmojiPickerColumns, resolveEmojiPickerContainerWidth, searchPickerEmojis };
146
+ export type { AXEmojiPickerFilter };
@@ -0,0 +1,52 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { AXEmoji } from '@acorex/core/constants';
3
+
4
+ declare class AXInlineReactionComponent {
5
+ private readonly elementRef;
6
+ private readonly document;
7
+ private readonly platformId;
8
+ readonly emojis: _angular_core.InputSignal<readonly AXEmoji[]>;
9
+ readonly size: _angular_core.InputSignal<number>;
10
+ /** Whether the reaction bar is expanded to show all emojis. */
11
+ readonly expanded: _angular_core.WritableSignal<boolean>;
12
+ /**
13
+ * Maximum number of emojis to display in the bar.
14
+ *
15
+ * @defaultValue 8
16
+ */
17
+ readonly maxVisible: _angular_core.InputSignal<number>;
18
+ /**
19
+ * When true, hides the expand button and always shows the collapsed bar only.
20
+ *
21
+ * @defaultValue false
22
+ */
23
+ readonly showExpanded: _angular_core.InputSignal<boolean>;
24
+ /**
25
+ * When true, collapses the bar when the user clicks outside the component.
26
+ *
27
+ * @defaultValue true
28
+ */
29
+ readonly closeOnClickOutside: _angular_core.InputSignal<boolean>;
30
+ /**
31
+ * Emits when the user clicks a quick reaction.
32
+ */
33
+ readonly selected: _angular_core.OutputEmitterRef<AXEmoji>;
34
+ /**
35
+ * Emits when the expanded state changes (expand button or click outside).
36
+ */
37
+ readonly expandedChange: _angular_core.OutputEmitterRef<boolean>;
38
+ protected readonly visibleEmojis: _angular_core.Signal<readonly AXEmoji[]>;
39
+ constructor();
40
+ protected toggleExpanded(event: Event): void;
41
+ private setExpanded;
42
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInlineReactionComponent, never>;
43
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXInlineReactionComponent, "ax-inline-reaction", never, { "emojis": { "alias": "emojis"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "maxVisible": { "alias": "maxVisible"; "required": false; "isSignal": true; }; "showExpanded": { "alias": "showExpanded"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; }, { "selected": "selected"; "expandedChange": "expandedChange"; }, never, never, true, never>;
44
+ }
45
+
46
+ declare class AXInlineReactionModule {
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInlineReactionModule, never>;
48
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXInlineReactionModule, never, [typeof AXInlineReactionComponent], [typeof AXInlineReactionComponent]>;
49
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXInlineReactionModule>;
50
+ }
51
+
52
+ export { AXInlineReactionComponent, AXInlineReactionModule };
@@ -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 };