blob: 5ae0ff9e79d67a024bc9c0972b7b7daf69335348 [file]
export * from './artifact-preview-registry.js';
export * from './assistant-stream.js';
export * from './chat-empty-hero.js';
export * from './chat-model-helpers.js';
export * from './clipboard-feedback.js';
export * from './use-mounted-ref.js';
export * from './components.js';
export type { SessionHistoryGroup } from './session-history-list.js';
export * from './session-status-presentation.js';
export * from './composer-helpers.js';
export * from './conversation-copy.js';
export * from './shared-ui-copy.js';
export * from './skills-copy.js';
export * from './daily-review-copy.js';
export * from './plan-reminder-copy.js';
export * from './tool-activity/copy.js';
export * from './tool-activity/sandbox-denial.js';
export * from './chat-input-behavior.js';
export * from './composer-mention-popup.js';
export * from './use-composer-skill-draft.js';
export * from './use-mention-popup.js';
export * from './runtime-resume-copy.js';
export * from './input-history.js';
export * from './daily-review-helpers.js';
export * from './locale-helpers.js';
export * from './locale-context.js';
export * from './markdown.js';
export * from './maka-uri.js';
export * from './materialize.js';
export * from './live-turn-projection.js';
export * from './model-picker.js';
export * from './interaction-queue.js';
export * from './user-question-prompt.js';
export * from './user-question-prompt-state.js';
export * from './redact.js';
export * from './overlay-scroll-area.js';
export * from './smooth-stream.js';
export * from './thinking-stream.js';
export * from './task-ledger-panel.js';
export * from './toast.js';
export * from './tool-output-stream.js';
export * from './ui.js';
export * from './utils.js';
// shared primitive UI primitives (copy/own from upstream primitive source). Each file is
// dropped in `./primitives/` with the `cn()` import rewritten to our
// local helper. Net-new components that aren't already covered
// by our shared component-style wrappers in `./ui.js` re-export here so
// consumers can `import { Alert, Empty, ... } from '@maka/ui'`.
export * from './bot-brand.js';
export * from './bot-brand-logo.js';
export * from './maka-wordmark.js';
export * from './primitives/alert.js';
export * from './primitives/card.js';
// `markerVariants` / `toolVariants` are deliberately NOT re-exported here:
// they are internal styling tables that the chat call sites apply via relative
// import, so keeping them off the package barrel preserves the governance goal
// — they stay renamable/removable without a public-API break. (Contrast
// `buttonVariants`, which IS public because it has external consumers.)
//
// `previewVariants` (#332 PR4) IS re-exported: its file-diff parts have a second,
// cross-package consumer — `apps/desktop`'s `artifact-preview.tsx` — which is the
// promotion condition the off-barrel convention named, so the export is the rule.
export { Bubble, Marker, Message, previewVariants } from './primitives/chat.js';
export { formatTurnDuration } from './chat-display-helpers.js';
export type {
BubbleProps,
MarkerProps,
MarkerVariant,
MessageProps,
} from './primitives/chat.js';
export * from './primitives/empty.js';
export * from './primitives/item.js';
export * from './primitives/spinner.js';
export * from './primitives/kbd.js';
export * from './primitives/menu.js';
export * from './primitives/dialog-header.js';
export * from './primitives/stat-tile.js';
export * from './primitives/data-table.js';
export * from './primitives/section-header.js';
export { EmptyState } from './empty-state.js';
export * from './primitives/choice-card.js';
export * from './primitives/segmented.js';
export * from './primitives/settings-select.js';
export * from './primitives/settings-switch.js';
export * from './primitives/input.js';
export * from './primitives/time-picker.js';
export * from './primitives/textarea.js';
export * from './primitives/input-group.js';
export * from './primitives/toolbar.js';
export {
Collapsible,
CollapsibleTrigger,
CollapsiblePanel,
} from './primitives/collapsible.js';
export {
Tooltip,
TooltipTrigger,
TooltipContent,
} from './primitives/tooltip.js';
export {
NumberField,
NumberFieldInput,
} from './primitives/number-field.js';
export {
Tabs as PrimitiveTabs,
TabsList as PrimitiveTabsList,
TabsTrigger as PrimitiveTabsTrigger,
TabsPanel as PrimitiveTabsPanel,
TabsContent as PrimitiveTabsContent,
TabsPrimitive as PrimitiveTabsPrimitive,
} from './primitives/tabs.js';
export {
Accordion as PrimitiveAccordion,
AccordionItem as PrimitiveAccordionItem,
AccordionHeader as PrimitiveAccordionHeader,
AccordionTrigger as PrimitiveAccordionTrigger,
AccordionPanel as PrimitiveAccordionPanel,
AccordionPrimitive as PrimitiveAccordionPrimitive,
} from './primitives/accordion.js';
// PR-USE-SHADCN-BASE-UI-BADGE: the canonical pill Badge primitive. #520 PR9
// collapsed the legacy ui.tsx Badge onto this one. Badge is the pill emphasis
// marker (health/permission center). Variants: default / destructive / error
// / info / outline / secondary / success / warning.
export { Badge, badgeVariants } from './primitives/badge.js';
export type { BadgeProps } from './primitives/badge.js';
// PR-USE-SHADCN-BASE-UI-CHIP: squared compact status label. #520 PR9 collapsed
// .settingsBadge + .settingsConnectionBadge CSS chips onto this one. Chip is
// the squared (radius-control) counterpart to pill Badge, for dense settings
// status rows. Status variants mirror StatusTone: neutral / info / success /
// warning / destructive; `accent` is the separate brand-accent marker
// (default-connection flags) outside the status scale.
export { Chip, chipVariants } from './primitives/chip.js';
export type { ChipProps } from './primitives/chip.js';
// PageHeader — the shared page-header shell (convergence round 3). One shell
// for the module hero (as='h2': 技能 / 定时任务) and the settings intros
// (as='h3': permission / health / voice / about). Wrapper class + per-slot
// CSS stay at the call site; the primitive converges STRUCTURE only.
export { PageHeader } from './primitives/page-header.js';
export type { PageHeaderProps } from './primitives/page-header.js';
// Streaming UI rework: Codex-style tool "trow" grouping helpers. Pure bucketing
// + summary used by the timeline tool renderer (ToolTrow) and unit-tested.
export {
summarizeTrowTools,
trowActivityKind,
isTrowRunning,
trowNeedsAttention,
type TrowActivityKind,
} from './tool-activity/trow-summary.js';
// #646 run→done seam: a tool row shimmers while running and settles by the
// light band stopping (no opacity fade — parallel settles don't stack).
// Unit-tested.
export {
isToolRowRunning,
isToolRowSettled,
} from './tool-activity/tool-row-motion.js';
// Streaming UI rework: per-word fade-in for streamed text (replaces the ▎
// caret). Pure append-record ring + tokenizer are unit-tested; the hook feeds
// markdown-body's rehype pass.
export {
useStreamFade,
tokenizeFade,
updateFadeRing,
createFadeRing,
fadeBoundary,
fadeAgeAt,
FADE_MS,
MAX_FADE_BATCHES,
type StreamFade,
type FadeToken,
type FadeRingState,
type FadeBatch,
} from './stream-fade.js';