import ReceivedCard from './components/Received/Card'
import SentCard from './components/Sent/Card'

/**
 * A dumb, context-free chat message bubble for rendering a single message row
 * *outside* a live channel — previews, digests, confirmation dialogs, the
 * Stacks "responded" summary, etc. Unlike `ChannelView`, it needs no Stream
 * client or provider.
 *
 * Render `MessageBubble.Sent` for the sender's own treatment (dark, right
 * tail) and `MessageBubble.Received` for the recipient's (light, left tail,
 * optional header). Surface colours, radius, typography, and the tail
 * silhouette are shared with the in-channel bubble drawn by `CustomMessage`,
 * so previews stay pixel-identical and re-theme from one source of truth.
 *
 * The variant is a **visual treatment, not an authorship claim**: to preview
 * an outgoing message as the recipient will see it, render
 * `MessageBubble.Received` with your own text.
 */
const MessageBubble = {
  Sent: SentCard,
  Received: ReceivedCard,
}

export default MessageBubble
export type {
  MessageBubbleBaseProps,
  MessageBubbleVariant,
  SentBubbleProps,
  ReceivedBubbleProps,
} from './types'
