/** * @module chat * Athena-backed chat UI plus reusable discussion building blocks. * * ```ts * import { * AthenaChat, * AthenaChatProvider, * } from "@xylex-group/athena-auth-ui/chat" * ``` * * Two families live on this subpath, at different layers. **Neither is * deprecated** — the 3.0.0 surface is purely additive: * * - **`AthenaChat*`** — the Athena-connected experience. It talks to * `client.chat` from `@xylex-group/athena` >= 4.1.0 and needs no credential * of its own beyond the viewer's session. Use it for Athena-backed chat. * - **`Chat*`** — presentational primitives, unchanged from 2.x and fully * supported. They own no data, so they suit custom layouts, a non-Athena * source, or isolated rendering in tests and Storybook. * * The two families are **independent implementations**, not a composition: the * `AthenaChat*` components do not import the `Chat*` primitives (they share * only the `formatRelativeTime` and `ChatParticipantAvatar` helpers). Neither * supersedes the other, because they serve different consumers — bring your own * data with `Chat*`, or let `AthenaChat*` own it. Mixing them in one layout is * fine; the primitives just take props where the connected ones read the store. * * Bot and webhook wiring lives on the server-only subpath * `@xylex-group/athena-auth-ui/chat/server` and must never be imported here. * * Value and type exports are split (`export { … }` / `export type { … }`) so * TypeScript language services resolve members reliably on the `./chat` subpath. */ export { avatarFallbackColor } from './components/auth/chat/avatar-color.js'; export type { ChatActivityActor, ChatActivityEvent, ChatActivityTimelineProps } from './components/auth/chat/chat-activity-timeline.js'; export { ChatActivityTimeline } from './components/auth/chat/chat-activity-timeline.js'; export type { ChatComposerAttachment, ChatComposerProps } from './components/auth/chat/chat-composer.js'; export { ChatComposer } from './components/auth/chat/chat-composer.js'; export type { ChatContainerProps } from './components/auth/chat/chat-container.js'; export { ChatContainer } from './components/auth/chat/chat-container.js'; export type { ChatHeaderProps } from './components/auth/chat/chat-header.js'; export { ChatHeader } from './components/auth/chat/chat-header.js'; export type { ChatMessageAttachment, ChatMessageProps } from './components/auth/chat/chat-message.js'; export { ChatMessage } from './components/auth/chat/chat-message.js'; export type { ChatMessageBubbleProps } from './components/auth/chat/chat-message-bubble.js'; export { ChatMessageBubble } from './components/auth/chat/chat-message-bubble.js'; export type { ChatMessageGroupProps, ChatMessageLike } from './components/auth/chat/chat-message-group.js'; export { ChatMessageGroup, groupDiscussionMessages } from './components/auth/chat/chat-message-group.js'; export type { ChatMessageListProps } from './components/auth/chat/chat-message-list.js'; export { ChatMessageList } from './components/auth/chat/chat-message-list.js'; export type { ChatParticipantAvatarProps, ChatParticipantAvatarSize, ChatParticipantAvatarStackProps } from './components/auth/chat/chat-participant-avatar.js'; export { ChatParticipantAvatar, ChatParticipantAvatarStack } from './components/auth/chat/chat-participant-avatar.js'; export type { ChatReactionItem, ChatReactionListProps } from './components/auth/chat/chat-reaction-list.js'; export { ChatReactionList } from './components/auth/chat/chat-reaction-list.js'; export type { ChatRoomListItem, ChatRoomListProps } from './components/auth/chat/chat-room-list.js'; export { ChatRoomList } from './components/auth/chat/chat-room-list.js'; export { formatAbsoluteTime, formatRelativeTime } from './components/auth/chat/format-relative-time.js'; export type { ChatMentionParticipant, ParseMentionsOptions } from './components/auth/chat/mentions.js'; export { extractMentions, renderMessageWithMentions } from './components/auth/chat/mentions.js'; export type { ChatMessageAction, ChatMessageActionAvailability, ChatMessageActionContext, ChatMessageDeliveryState } from './components/auth/chat/message-actions.js'; export { listEnabledChatMessageActions, resolveChatMessageActions, resolveGroupedMessagePresentation } from './components/auth/chat/message-actions.js'; export type { PendingButtonProps } from './components/auth/chat/pending-button.js'; export { PendingButton } from './components/auth/chat/pending-button.js'; export { upsertRoom } from './components/auth/chat/room-utils.js'; export type { AthenaChatProps } from './components/auth/chat/athena/chat.js'; export { AthenaChat } from './components/auth/chat/athena/chat.js'; export type { AthenaChatAttachmentGridProps, AthenaChatLightboxProps, AthenaChatPendingAttachmentsProps } from './components/auth/chat/athena/chat-attachments.js'; export { AthenaChatAttachmentGrid, AthenaChatLightbox, AthenaChatPendingAttachments } from './components/auth/chat/athena/chat-attachments.js'; export type { AthenaChatComposerProps } from './components/auth/chat/athena/chat-composer.js'; export { AthenaChatComposer } from './components/auth/chat/athena/chat-composer.js'; export type { AthenaChatIconName } from './components/auth/chat/athena/chat-icons.js'; export { ATHENA_CHAT_ICON_PATHS, AthenaChatIcon } from './components/auth/chat/athena/chat-icons.js'; export type { AthenaChatMessageListProps } from './components/auth/chat/athena/chat-message-list.js'; export { AthenaChatMessageList } from './components/auth/chat/athena/chat-message-list.js'; export type { AthenaChatMessageTextProps } from './components/auth/chat/athena/chat-message-text.js'; export { AthenaChatMessageText } from './components/auth/chat/athena/chat-message-text.js'; export type { AthenaChatHeaderProps, AthenaChatRoomListProps } from './components/auth/chat/athena/chat-room-list.js'; export { AthenaChatHeader, AthenaChatRoomList } from './components/auth/chat/athena/chat-room-list.js'; export { mapAttachment, mapMember, mapMessage, mapReaction, mapRoom, mergeMessages, upsertViewRoom } from './components/auth/chat/athena/mapping.js'; export type { AthenaChatProviderProps } from './components/auth/chat/athena/provider.js'; export { AthenaChatProvider, useAthenaChat, useAthenaChatActions, useAthenaChatMentionables, useAthenaChatShallow, useAthenaChatUser } from './components/auth/chat/athena/provider.js'; export type { AthenaChatTextSegment, AthenaRichBodyFormat, AthenaRichBodyMention, AthenaRichBodyV1 } from './components/auth/chat/athena/rich-body.js'; export { buildAthenaRichBody, isAthenaRichBodyV1, parseAthenaRichBody, resolveMentionsFromText, segmentMentionText } from './components/auth/chat/athena/rich-body.js'; export type { AthenaChatSendOptions, AthenaChatState, AthenaChatStore, AthenaChatStoreConfig } from './components/auth/chat/athena/store.js'; export { ATHENA_CHAT_PAGE_SIZE, ATHENA_CHAT_TYPING_TTL_MS, createAthenaChatStore } from './components/auth/chat/athena/store.js'; export type { AthenaChatBodyFormat, AthenaChatDeliveryState, AthenaChatMention, AthenaChatPendingAttachment, AthenaChatUploadedFile, AthenaChatUser, AthenaChatViewAttachment, AthenaChatViewMember, AthenaChatViewMessage, AthenaChatViewReaction, AthenaChatViewRoom, AthenaChatViewRoomKind } from './components/auth/chat/athena/types.js'; export type { AthenaChatDictation } from './components/auth/chat/athena/use-dictation.js'; export { ATHENA_CHAT_DICTATION_BARS, useAthenaChatDictation } from './components/auth/chat/athena/use-dictation.js';