0c8eaaf74b
Two bugs from the formatting work, both visible in the CRM messenger: 1. Inline code / code blocks were invisible in your OWN bubbles. `.miu-code` sets background: --miu-panel-2 (#1d1d26) while the is-mine override set only the colour to --miu-accent-text (#1a1206) — near-black on near-black, ~1.03:1 contrast. The chip now tints the accent bubble (rgba(0,0,0,.16)) instead of using the panel colour, so it reads against any accent. 2. The conversation list showed the raw last message, so a strikethrough message previewed as "~crazy~". Adds stripMarkup() — markers off, code unwrapped, nesting handled, honouring the same word-boundary rule so snake_case_name and "5 * 3" survive — and uses it for the preview line. Bumped to 0.1.10. SDK suite: 17 files / 98 tests green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
48 lines
1.9 KiB
TypeScript
48 lines
1.9 KiB
TypeScript
// Public API. Components land in Plan 2; adapters/kernel in Plan 3.
|
|
//
|
|
// `runAdapterConformance` is deliberately NOT exported here — it imports vitest and
|
|
// ships from the './conformance' subpath so consumers never pull a test runner into
|
|
// their production bundle.
|
|
export { MessagingProvider, useAdapter } from './provider';
|
|
export { useConversations } from './hooks/use-conversations';
|
|
export { useMessages } from './hooks/use-messages';
|
|
export { useChannels } from './hooks/use-channels';
|
|
export { useMembers } from './hooks/use-members';
|
|
export { isOwnMessage } from './types';
|
|
// Message-body markup (bold/italic/strike/code/links + mentions) as a safe ReactNode tree.
|
|
export { renderRichText, safeHref, stripMarkup } from './rich-text';
|
|
|
|
// Rendered UI. Pair with the './styles.css' export (or override the --miu-* tokens).
|
|
export { Messenger } from './components/messenger';
|
|
export { ConversationList } from './components/conversation-list';
|
|
export { ChannelBrowser } from './components/channel-browser';
|
|
export { Thread } from './components/thread';
|
|
export { ThreadPane } from './components/thread-pane';
|
|
|
|
// ── Inbox domain (work items + mail) ──
|
|
export { InboxProvider, useInboxAdapter } from './inbox/provider';
|
|
export { useInbox, useMailThread, useCompose } from './inbox/hooks';
|
|
export { Inbox, MailReader } from './inbox/inbox';
|
|
export type { InboxAdapter } from './inbox/adapter';
|
|
export type { InboxItem, InboxState, MailAttachment, MailMessage, MailPerson } from './inbox/types';
|
|
|
|
export type { MessagingAdapter } from './adapter';
|
|
export type { ConversationsState } from './hooks/use-conversations';
|
|
export type { MessagesState, UiMessage } from './hooks/use-messages';
|
|
export type { ChannelsState } from './hooks/use-channels';
|
|
export type {
|
|
Attachment,
|
|
BulkAddResult,
|
|
ChannelSummary,
|
|
ChannelVisibility,
|
|
Conversation,
|
|
CreateChannelInput,
|
|
Membership,
|
|
Message,
|
|
MessageEvent,
|
|
Person,
|
|
Reaction,
|
|
SendOpts,
|
|
Unsubscribe,
|
|
} from './types';
|