brand.magicblocks.ai · components

The machine layer

How agents and apps consume the kit — three npm packages, a JSON API, and an agent guide. 334 typed React components in @magicblocksai/ui; every component links back to its Library page for the visual reference.

  • 3 npm packages
  • 334 Components
  • 27 Chapter groups
  • 10 Live demos
install · 3 packages

npm install

Three workspace packages on GitHub Packages. Pin one or all three depending on which surfaces your app touches. For the full setup walkthrough — auth token, .npmrc, CSS imports, Tailwind bridges — see brand.magicblocks.ai/install.

@magicblocksai/css

vanilla

The brand stylesheet — every CSS variable + every component class, ready to drop into any HTML, Astro, 11ty, or Hugo project.

npm install @magicblocksai/css

@magicblocksai/ui

react

Typed React components — Tailwind preset, dark mode, reduced-motion-aware, keyboard-nav primitives baked in.

npm install @magicblocksai/ui

@magicblocksai/brand

data

Pure data — colours, type, spacing, asset URLs, voice rules. Same JSON shape as the API, ready for codegen + agent tooling.

npm install @magicblocksai/brand
contract · 5 endpoints

JSON API

Every Library surface mirrors a structured endpoint. Hit any URL below for raw JSON. Every chapter HTML also serves as Markdown — append .md.

catalogue · 334 components

Component catalogue

Every component @magicblocksai/ui exports. Filter by interactivity, search by name, follow each row to its Library demo for the visual reference.

334 shown
  • Kit chrome 19
    • KitPage display

      Page-shell wrapper for any kit-style chapter / reference page. Sets `data-theme` on its root so token swaps cascade to descendants. The…

    • KitNav interactive use client

      The kit's top navigation bar — brand mark + a native `<select>` chapter picker + light/dark theme toggle on the right. Wraps `.topnav`…

    • KitChapterNav interactive use client

      The kit's deployed top-nav chrome — brand + breadcrumb pill + inline sections strip + mega-dropdown chapter picker + scroll-capped mobile…

    • KitCommandPalette interactive use client

      Universal Cmd-K palette for the kit-site. Searches across components, chapter sections, assets, chapters, and top-level pages.

    • Demo display

      One demo block (the `.el` block in chapter HTML). Renders the head with a name + optional class tag, an optional one-line description,…

    • DemoTabs interactive use client

      The HTML / CSS / JS / React code-tab strip with tab switcher + copy button — the same chrome the chapter HTML pages render below each…

    • ThemeToggle interactive use client

      Light / Dark theme switch — the same control the chapter pages use.

    • AgendaList interactive use client

      Time-grouped list — date bands + per-row content. Designed for calendar / upcoming / agenda surfaces ("Today" + "Tomorrow" event groups,…

    • OnboardingStep interactive use client

      Onboarding step — three-up flow with a top stepper, a focused panel, and back / continue actions. Wraps `.ob`.

    • DangerZoneBlock display

      Red-bordered container for destructive actions. Takes children — consumers compose any number of `<DangerZoneAction>` rows inside. Used as…

    • DEFAULT_DATE_RANGE_PRESETS interactive use client

      Default presets: Last 7 / 30 / 90 days, This month, Last month, This year. Exported so consumers can extend rather than fully replace.

    • LIFECYCLE_STAGES display

      The kit's default lead-generation lifecycle. Generic enough for any industry: Engage → Qualify → Follow-up → Converted → Re-engage.…

    • CHANNEL_LABELS interactive use client
    • MASKED_IMAGE_PLACEHOLDER interactive use client

      1x1 transparent GIF data URI used as the masked-image placeholder. Matches what the inbound-email sanitiser stamps onto blocked `<img>`…

    • SummaryBanner interactive use client

      Collapsible AI-generated summary card — the kit's standard "here's a TL;DR of this conversation / session / agent diff" banner. Defaults…

    • StructuredDocEditor interactive use client
    • WIDGET_DEFAULTS interactive use client
    • WidgetStyleEditor display
    • MagicBlocksWidget interactive use client
  • 18 Agent Builder 32
    • CodeBlock display

      Standalone code sample with a header bar — language pill + filename + copy button — wrapping `<pre><code>`. Wraps `.codeblk` from chapter 7.

    • CopyButton interactive use client

      Small reusable copy-to-clipboard button. Wraps `.copy`. On click, writes `value` to `navigator.clipboard.writeText(...)`, swaps the label…

    • UsedByChip display

      Usage indicator for a shared shelf item (persona, snippet, form, goal) on the Agents HQ — "Used by 4 agents", or a calm "Not used yet" at…

    • SetupProgressChip display

      Setup progress for an agent — "Setup 5 of 6 — connect a phone number" on the agent's Overview. Turns green and reads "Setup complete" once…

    • GoLiveCard display

      The Overview card that answers "how do people reach this agent, and how do I go live?" — channel rows with live / not-yet states and a…

    • RecentChangesList interactive use client

      The Overview's accountability card — recent human and Sage edits to the working copy, each timestamped; Sage entries carry an Undo so the…

    • KeyFactBehaviourLine display

      A key fact's behaviour, said out loud — "Asked in Greeting · listened for everywhere", "Never asked · only listened for in Discovery" —…

    • LeadsToStrip display

      The block editor's orientation strip — "Leads to → Discovery, once every key fact here is collected" — with the reverse half ("Reached…

    • TemplateCard interactive use client

      One template in the new-agent gallery — name, one-line pitch, the journey shape as a mini block chain, and what it ships with.…

    • TemplateGallery display

      The new-agent creation sheet's grid of `TemplateCard`s — the MagicBlocks starter set, the workspace's saved templates, and the dashed…

    • BlockLibraryDrawer interactive use client

      The journey rail's block-template drawer — the MagicBlocks starter set (Greeting, Qualify, Objection handling, Pricing, Booking,…

    • ConditionRow interactive use client
    • FieldMapper interactive use client

      Two-column field mapper — left side picks a MagicBlocks data field, right side picks the destination/source on an external system (HubSpot…

    • TestConnectionButton interactive use client

      Button with built-in pending / ok / error chip — wraps an async probe (MCP Discover Tools, Webhook Test, HubSpot Test, Form Test) and…

    • VersionSwitcher interactive use client

      Version-switcher dropdown — clicked label opens a menu of prior versions with timestamps and optional status pills. Used for Agents,…

    • AgentChannelStrip display

      Multi-channel icon strip. Composes a column of 22×22 chips indicating which channels (web / SMS / email / voice / WhatsApp) an agent…

    • ActionWizard display

      The agent-builder action wizard shell — a 2-column layout (actions list + wizard pane with a step header, scrolling body, and footer).…

    • ActionList interactive use client

      The actions mini-column for the agent-builder wizard — a count header, the list of actions on the current block, and a "New Action"…

    • WizardSteps interactive use client

      Numbered step indicator for a wizard (Action · Conditions · Goal). Completed steps show a check glyph; the active step is highlighted.…

    • ActionPicker interactive use client

      Registry-driven grid of action-type tiles + a detail card for the selection. Every entry in the action registry renders automatically —…

    • ActionConfigPanel interactive use client

      Renders the config surface for an action, driven by the registry: a custom `Panel` if the type declares one, else its declarative `fields`…

    • ActionField interactive use client

      Renders one {@link ActionFieldSpec} as the matching kit primitive (`text`→`<Input>`, `select`→`<Select>`, `switch`→`<Switch>`,…

    • MessageField interactive use client

      Snippet-or-custom message editor — a Select | Custom toggle that swaps between picking a saved snippet (`<Select>`) and typing inline text…

    • CalendarActionConfig interactive use client

      Custom config panel for the **Add Calendar** action — the complex exemplar proving the registry's `Panel` escape hatch. Composes…

    • SwitchJourneyActionConfig interactive use client

      Custom config panel for **Switch Journey** — directs the agent to a different journey block and/or channel. Composes `<Select>` (block +…

    • ButtonsActionConfig interactive use client

      Custom config panel for **Add Buttons** — quick-reply buttons shown before and after a message. Composes two `<MessageField>`s (before /…

    • FormsActionConfig interactive use client

      Custom config panel for **Add Forms** — collect end-user info via a saved form. Picks the form (`<Select>` from `context.forms`) and…

    • HumanTakeoverActionConfig interactive use client

      Custom config panel for **Human Takeover** — pause the AI and route the conversation to a human. A follow-up `<Select>` (None / Slack);…

    • RunTaskActionConfig interactive use client

      Custom config panel for **Run Task** — the instructions the agent follows when a condition is met. A Select | Custom toggle picks a saved…

    • GoalStep interactive use client

      The agent-builder wizard's **Step 3 — Goal**: pick the goal this director works toward (`<Select>` from the workspace goals), and — once a…

    • AgentBuilderHead interactive use client

      The agent builder topbar: back button · name + type chip · version + unsaved meta · trailing action pills. Pass it to…

    • BuilderRail display

      The agent builder's left rail — a scroll container for nested `RailGroup`s, leaf `RailItem`s, and the sortable Journey `RailBlockItem`s.…

  • 10 Page Templates 11
    • PricingPage display

      Three-tier pricing page. Wraps `.pg` + `.pg-grid`.

    • SignInPage display

      Two-panel sign-in / sign-up page shell. Wraps `.au` (form) + `.au-side` (testimonial). On mobile the panels stack; the side moves to the…

    • NotFoundPage display

      404 / not-found page. Wraps `.nf` — the warm cream canvas with double radial blooms and a Fraunces-italic title.

    • ConversationPreview display

      Conversation preview — the chat surface used on landing pages, dashboards, and case studies. Wraps `.cv` (paper card) with `.cv-head`,…

    • DashboardShell display

      App dashboard shell — warm sidebar + paper main. Wraps `.dash`.

    • AppShell interactive use client

      Full-viewport app chrome — sidebar + main column with an optional sticky topbar. Sibling to `<DashboardShell>`, but built for whole-app…

    • WorkspaceShell interactive use client

      The batteries-included NextGen app shell. Composes the bare `<AppShell>` with a fully-assembled collapsible rail (brand · workspace…

    • SectionView display

      The thin, consistent frame for a standard inner section — pinned `header`, a scrollable body with page gutters, and an optional pinned…

    • SectionCardEmpty interactive use client

      `<SectionCard.Empty>` — render the canonical empty-state stack from inside any body slot (free-form children, not just the `emptyState`…

    • EmptyStatePage display

      Page-level empty state, distinct from the icon-only `<EmptyState>` primitive. Wraps the chapter-07 `.empty` shell with chapter-10…

    • SettingsShell interactive use client

      Two-column settings shell. Wraps `.settings` (200px nav + fluid content).

  • 15 App Shell 23
    • WorkspaceNavIcon display

      A single item in an `<AppShell>` / `<WorkspaceShell>` sidebar — the 36×36 nav button that collapses to an icon-only band and expands to…

    • SidebarHead interactive use client

      The top band of an `<AppShell>` / `<WorkspaceShell>` sidebar — brand lockup on the left, a collapse-toggle chevron on the right. Purely…

    • WorkspaceSwitcher display

      The workspace identity control at the top of a `<WorkspaceShell>` rail — letter-box (or uploaded-logo) avatar + workspace name + sub-line.…

    • WorkspaceNav display

      The grouped navigation column of a `<WorkspaceShell>` rail — a `<nav>` that stacks `<WorkspaceNavSection>` labels and `<WorkspaceNavIcon>`…

    • WorkspaceUser display

      The signed-in user control pinned to the bottom of a `<WorkspaceShell>` rail. Three modes: - **menu** (`menu`): a trigger that opens a kit…

    • WorkspaceThemeToggle interactive use client

      The in-rail light/dark control for a `<WorkspaceShell>` bottom cluster — what lets a sidebar-first app drop the top bar entirely. Toggles…

    • WorkspaceBar display

      The **optional** compact top bar for a `<WorkspaceShell>` (~48px). Sidebar-first apps omit it entirely — the rail's bottom cluster already…

    • SectionHeader display

      The canonical inner-section header — back · eyebrow · title · subtitle · actions · optional tabs. The one header every standard section…

    • PageHeader display

      Page header — the canonical "eyebrow · title · summary · actions" rhythm every product-app route reaches for. Wraps `.page-header` from…

    • RoomHeader display

      The three-line room hero — eyebrow · display heading · lede — that opens every agent-builder room. A thin composition of `<Eyebrow>` +…

    • DetailShell interactive use client
    • DensityProvider interactive use client

      Density-mode wrapper. Sets `data-density` on its root so descendants — and any CSS that consumes `var(--row-h)` — automatically respond.

    • EmptyAppCard display

      CRM-flavoured empty state — illustration + headline + lede + primary CTA + secondary fallback. Wraps `.empty-card` from chapter 13.

    • SettingsNavRail interactive use client

      Left-rail navigation primitive for settings pages. Groups items into labelled sections with optional icons + count badges. The active item…

    • SettingsHeaderBlock display

      Per-page header for settings pages. Eyebrow + title + description + actions row. Layers atop `<PageHeader>` thematically but with a…

    • PreferenceToggleRow interactive use client

      Labelled row containing a switch on the right. Used 5–20× per settings page for boolean preferences. Composes the kit's `<Switch>`…

    • ApiKeyCard interactive use client

      A card displaying an API key with masked-by-default token, reveal + copy + (optional) revoke actions, and last-used / created metadata.

    • SessionRow interactive use client

      A single session row inside `<SessionList>`. Renders device + (optional) location + last-active timestamp on the left, with a per-session…

    • UnsavedChangesBar interactive use client

      Portal-mounted sticky bottom bar that surfaces a "you have unsaved changes" message with Save and Discard actions. Controlled-only:…

    • SettingsAccountPage display

      Page-shaped wrapper composing `<SettingsShell>` + `<SettingsNavRail>` + `<SettingsHeaderBlock>` + body. Drop-in for the common API-keys /…

    • SavedViewsRail interactive use client

      Named query views rail — labeled rows with optional counts, icons, group headers, and starring. Backs the Sessions left-rail saved views…

    • HelpBubble interactive use client

      Floating help / chat launcher — the global bottom-right "Magic on Magic" bubble that appears on every page of the Next Gen app. Open state…

    • RouteProgress display

      Indeterminate route-load progress bar. A 2px gradient slides across the anchored edge while `active`; fades out smoothly when `active`…

  • 04 Forms & Inputs 27
    • MentionInput interactive use client

      Async @-mention picker built on the kit's `<Textarea>`.

    • MultiSelect interactive use client

      Multi-select with chip-rendered selections and a keyboard-navigable popover. Composes Combobox-style search with persistent multi-pick (no…

    • InlineDateField interactive use client

      Inline edit-in-place date field. Click the resting label to swap to a native `<input type="date">`; Enter / blur commits, Escape cancels.…

    • SortableHandle interactive use client

      Drag-grip + secondary-action handle for sortable cards / rows.

    • DatePicker interactive use client

      Single-date picker — trigger button shows the formatted date; a popover with a single-month calendar opens on click. Keyboard: arrow keys…

    • Combobox interactive use client

      Searchable single-select combobox. See `ComboboxProps` for the full surface; pair static `options` with `getLabel` for client-side…

    • FileUpload interactive use client

      File upload + drop zone. Click the zone (or press Enter / Space) to open the native picker; drag files onto it to drop directly. Files are…

    • SortableList interactive use client
    • RichTextEditor interactive use client

      TipTap-shaped rich text editor backed by a sanitised contenteditable.

    • RichTextContent display

      Read-only renderer for rich-text HTML authored in `<RichTextEditor>` or `<RichTextEditorPro>`. Sanitises the input against the kit…

    • ConsentToggle interactive use client

      Channel-level opt-out toggle with optional consent-event log. Wraps `<Switch>` plus a `.consent-events` audit list.

    • MergeTagInput interactive use client

      Single-line text input with `{{ }}` merge-tag autocomplete. Wraps `.input` with a `<Popover>` for tag suggestions.

    • Input display

      Text input. Wraps `.input` (and `.input-group` + `.input-affix` when prefix/suffix are passed).

    • Textarea display

      Multiline text input. Wraps `.input` applied to a `<textarea>`.

    • Select display

      Native `<select>` styled to match the kit's `.input` family.

    • Label display

      Form label. Pair with the corresponding `htmlFor` to associate with an input. Wraps `.input-label` (and renders `.input-hint` when `hint`…

    • Slider interactive use client

      Numeric slider with paired value readout — the kit's standard "creativity", "temperature", "weight" control. Drop-in: works uncontrolled…

    • DurationField interactive use client

      Composite count + unit duration input — the kit's standard "wait for…" editor. Used in the `No message received from user for…` condition…

    • KeyValueRepeater interactive use client

      List of key/value pairs with add + remove affordances — the canonical shape for MCP auth headers, Webhook headers, HTTP function parameters.

    • SnippetTextarea interactive use client

      Textarea + `Insert snippet` picker — the canonical text input for every agent message field, persona prompt, custom-fallback message, and…

    • VariantsRepeater interactive use client

      List of textarea variants with add + remove. Used for AI Message Versions (randomised by the agent runtime), Snippet Variants tab, and any…

    • RadioCardList interactive use client

      Vertical radio list rendered as cards with label + description + optional reveal sub-form. The kit's standard "pick one option from a few,…

    • MultiBindingList interactive use client

      Repeater of select + remove rows. Used for the Brain → MCP picker (`+ Add MCP`), Knowledge Base Collections multi-select (≤3),…

    • TimePicker interactive use client

      Simple HH:MM time input. Wraps the native `<input type="time">` for keyboard parity + accessibility, with an optional 12-hour caption.

    • DomainList interactive use client

      Chip-input for hostnames — used for the Design & Go Live domain whitelist, CORS origin lists, and any "list of hosts with validation"…

    • CategoryGroupList interactive use client

      Grouped expandable list — each group has a header (label + count + meta) and a body of items that's revealed when expanded. Backs the…

    • ExpandableEditRow interactive use client

      Collapsed row → expanded inline editor — the kit's pattern for "click a Knowledge Q&A item to edit it in place", Missing Knowledge convert…

  • 16 Pipeline & CRM 28 5 live
    • EmailThread interactive use client

      Email thread viewer — full-width rows (no chat bubbles), per-message header with sender + Details toggle, latest-expanded with older…

    • EmailThreadRow interactive use client

      Gmail-shaped inbox row — left-side star, avatar, sender + subject + preview on a single truncated line, time on the right edge,…

    • DashboardNavGroup interactive use client

      Collapsible nav-group wrapper. Renders a `<details>` element styled by the kit's `.dash-nav-group` class — the section heading is the…

    • MiniCardLinkList display

      Container for a stack of `<MiniCardLink>` rows. Composes naturally inside a `<SectionCard>` body slot. Renders as `<ul>` for screen-reader…

    • ReviewerInbox interactive use client

      Human-in-the-loop review queue. A list of pending agent responses awaiting reviewer approval — each row carries a status dot, summary…

    • Kanban interactive use client live

      Kanban board — the deals view's spine. Wraps `.kanban` from chapter 14.

    • PipelineBar interactive use client live
    • ActivityTimeline interactive use client live

      Activity timeline — vertical hairline rail with iconified nodes per event, filter chips at the top, and date dividers between days. Wraps…

    • Inbox interactive use client live

      Inbox container — wraps `.inbox` from chapter 14. Renders as an unordered list so the row markup is semantic.

    • MrrChart display

      MRR composition chart — vanilla SVG diverging-bar chart for the revenue dashboard. Wraps `.mrr-chart` from chapter 14.

    • QuietHoursIndicator display

      Read-only SMS-safe-hours indicator: the compliant send window for a contact's timezone, with a live "now" marker. Glanceable "OK to text"…

    • MemoryList display

      Free-form, agent-summarised memories about a contact — the "soft" knowledge a structured form can't hold. Each row: optional icon · text ·…

    • KeyFactGrid display

      Structured facts an agent captured about a contact, each with provenance. The keys adapt to any industry — nothing hard-coded. Pairs with…

    • EngagementScore display

      A contact / record engagement score as a drop-in molecule: a `<ScoreRing>` paired with a `<Sparkline>` trend and an optional "computed…

    • TriggerAgentDialog interactive use client

      Channel-aware outbound agent picker. The launcher opens a `<Modal>` listing the agents that can start an outbound to this contact, each…

    • HandoverOutcome display

      What happened at the end of a session — the webhooks that fired and where the contact was handed (a journey block or a human). Renders as…

    • MemoriesDialog interactive use client

      The "expand memories" popup. The launcher opens a `<Modal>` listing every memory the agent captured — text, category, confidence, the…

    • SessionSummaryBand display

      The summary band atop a completed session — the contact-overview-consistent header: a Sage AI summary, then Key facts · Memories ·…

    • SessionPage interactive use client

      A completed session — summary-led, consistent with the contact overview. A hero (identity · channel · agent · Goals chips · stat row),…

    • SessionsOverviewPage interactive use client

      The top-level Sessions overview — every agent conversation, filterable, in the same chrome as the Contacts page. Composes the kit's…

    • ContactDetailPage interactive use client live

      The AI-native CRM contact page. A page-shaped composition: a warm identity hero with a lifecycle journey bar + universal stat strip, then…

    • ChatTranscript interactive use client

      Conversation viewer shell — header, scrollable message area, footer. Children are a flat stack of `<ChatMessage>` nodes.

    • Trace interactive use client
    • ListScreen display

      Page-shell container for list-shaped surfaces — Contacts, Agents, Campaigns, Sessions, anything else where the page is "header + tabs +…

    • ListScreenHead display

      Header row for `<ListScreen>`. Two API surfaces:

    • ListScreenKpiStrip display

      4-up grid container sitting between `<ListScreenHead>` and `<ListScreenTabs>`. Composes the kit's `<KpiDeltaTile>` (chapter 7.27) or any…

    • ListScreenTabs display

      Status filter tabs row. Sits between `<ListScreenKpiStrip>` (or `<ListScreenHead>` if no KPI strip) and the body. Underline-pill pattern —…

    • ListScreenFoot display

      Footer row for `<ListScreen>`. Two layouts via the `centered` prop:

  • 17 AI Surfaces 16
    • ScoreCard display

      Hero "score + interpretation + breakdown" card. Composes `<ScoreRing>` + `<Card>`-style surface + label / headline / meta slots.

    • NarrationLog interactive use client

      Event-log / scan-narration list. Vertical hairline list with status-coloured rows for any long-running async process (scan, build, deploy,…

    • EvidenceQuote display

      @deprecated Since v4.0.0 — a thin alias of [`<SourcePassage>`](./SourcePassage) (`source` → `cite`). It renders SourcePassage's markup.…

    • PasteAndRecheckArea interactive use client

      Paste-revised-text + re-run-audit composition. The kit primitive for the "user pastes a revised body of text and clicks Re-check to re-run…

    • Evaluations interactive use client

      Scored-rubric display for evaluating AI agent responses. A vertical panel of criteria — each carrying a name, score (0–10), pass / fail /…

    • SageDrawer interactive use client

      Sage AI drawer — right-anchored AI assistant. Wraps `.sage-drawer` from chapter 15.

    • ComposeDrawer interactive use client

      Compose drawer — the single email composer used everywhere. Wraps `.compose` from chapter 15.

    • AiSuggestionCard interactive use client

      AI suggestion card — Sage's proactive in-rail card. Wraps `.ai-card` from chapter 15.

    • KbSuggestionCard interactive use client

      Knowledge-base suggestion card — Sage's "assist" surface for support agents. Wraps `.kb-card-suggest` from chapter 15.

    • ConfettiTrigger interactive use client

      Confetti win-moment trigger — a `<button>` that fires a one-shot brand-palette confetti burst + toast on click. Wraps the chapter-15…

    • KNOWLEDGE_TOPICS display

      The 12 conditional-retrieval topics (NextGen `PlaybookChunkLabel`) mapped to their plain, customer-facing labels.

    • KnowledgeItemRow display

      One row in the Knowledge collection editor: source icon + title + adaptive one-line preview + optional topic chip + updated time. Wraps…

    • KnowledgeLane display

      One lane in the Knowledge editor — a tinted header (dot + plain name + helper + count) over a list of `KnowledgeItemRow`s. The three lanes…

    • AddKnowledgeMenu display

      The "Add knowledge" dropdown — the four ways to bring knowledge into a collection: write it yourself, import from a website, upload a…

    • AttachLanePicker interactive use client

      The agent-attach control: pick which lanes of a collection an agent gets, and which topics within the "When a topic comes up" lane. The…

    • ProposalCard interactive use client

      Sage's unit of change — a copilot edit as a card the operator stays in charge of. Pending proposals wait for Accept · Adjust · Dismiss;…

  • 11 Narrative Systems 25 1 live
    • ScrollCue display

      Animated "scroll for more" indicator — mono uppercase label above a vertical hairline that pulses on a 2.4s loop. Honours…

    • DialogueContrast display

      Two-column conversation comparison container. Designed for product / behaviour / before-after comparison content — e.g. "how does our…

    • DotMatrix display

      Proportion visualisation — a grid of dots where a subset is highlighted to communicate "out of N, M did X". The 1000-dot 40×25 grid is the…

    • BrandTimeline display

      Brand timeline — horizontal milestone ticks with labelled rails. Used for the About page origin story ($200M → AI mortgage team →…

    • ChatCompare display

      Chat comparison — dual-conversation proof widget. Same inbound lead message in both columns; the asymmetry IS the message. Generic chatbot…

    • DecayCurve display

      Decay curve — a line graph of lead intent vs time with a hot/cooling/dead traffic-light overlay, an animated tracer dot riding the curve,…

    • DormantMine display

      Dormant-lead mine — a CRM mockup table where every row continuously cycles through cold → scanning → drafting → sent → replied,…

    • EcosystemRings display

      Ecosystem rings — three concentric rings with the engine at centre, today's products in the middle ring, and tomorrow's vision on the…

    • DEFAULT_REGIONS interactive use client

      Default region scenarios — the chapter §11.12 "Closest edge wins" demo content baked in so `<EdgeRace />` works with zero props. Five…

    • EngineBlock display

      Engine block — central ink-block engine with four channel labels orbiting it (40s revolution), lead-source cards stacking on the left and…

    • GuardianShield display

      Guardian shield — one shield, one promise. Six universal compliance primitives (consent, privacy, encryption, retention, opt-out, audit)…

    • HandoffCard display

      Handoff card — credential-style card showing a qualified lead ready for human handoff. Five+ industry variants via the `role` prop — each…

    • HappaArc display

      HAPPA arc — five conversation stages (Hook · Align · Personalise · Pitch · Action) anchored along a soft S-curve, with a continuous tracer…

    • HeroBloomCanvas display

      Hero bloom canvas — large ambient SVG backdrop for hero sections. Three soft radial gradients with slow drift, optional drifting motes.…

    • HeroLiveDemo display

      Hero live demo — flagship laptop hero with a looping mortgage-scenario conversation, response-timer overlay, status badge, and scenario /…

    • HeroScene display
    • IntegrationHub display

      Integration hub — radial diagram with 8 dashed spokes converging on a central MagicBlocks core, with branded integration chips at the…

    • JourneyMap display

      Journey map — horizontal branching flow with labelled connectors. One component, many variants — prequalification, follow-up,…

    • LeakCard display

      Leak card — one of the four-leaks diagnostic tiles. One atom, four variants (`leak={1|2|3|4}`), each carrying its own accent colour via…

    • ProfileCard display
    • RaceTimeline display

      Race timeline — split timestamp sequence with a left lane that loses (cold, drawn-out) and a right lane that wins (sub-second beats marked…

    • RevenueCalculator interactive use client live

      Revenue calculator — dual-tab widget (Activation + Reactivation) with plan-aware pricing and live computation. Wraps `.roi-calc` from…

    • Scoreboard display

      Scoreboard — two-column contrast table for "most teams vs MagicBlocks" moments. Wraps `.scoreboard` (and `.scoreboard.dark` variant) from…

    • StatBadge display

      Stat badge — editorial big-number callout. Mono uppercase eyebrow + a Bricolage-display number with optional `<sup>` unit and a caption…

    • Triptych display

      Triptych — three equal panels separated by arrow dividers, used for "How It Works" sections across the site. Panels stack on mobile and…

  • 02 Typography 6
    • InlineHeadline interactive use client

      Inline edit-in-place headline. Click the resting heading to swap to a text input styled to match; Enter / blur commits, Escape cancels.

    • Heading display

      Kit-styled heading. Renders an h1–h6 with the kit's typography defaults. Pass `display` for the hero / marketing variant (56px, bold,…

    • Eyebrow display

      Small uppercase label that sits above a heading. Wraps `.eyebrow`. Mono, 11px, accent-text colour.

    • Lede display

      Larger paragraph (19px) that sits below a hero heading. Wraps `.lede`. Use exactly once per page hero. For body copy, use a plain `<p>`.

    • Caption display

      Small helper / metadata text (13px, dim). Wraps `.caption`.

    • Quote display

      Pull quote / testimonial figure. Wraps `<figure class="quote">` with a `<blockquote>` and an optional `<figcaption>` for attribution.…

  • 05 Cards & Surfaces 14 1 live
    • IndustryBar display

      Slim full-width sub-nav strip beneath the topnav. Answers "is this for me?" in under half a second.

    • CostCompare display

      Side-by-side cost-comparison bars. Two horizontal bars stacked vertically: a full-width muted bar on top labelled with the high-cost…

    • Checklist interactive use client live

      Onboarding checklist — vertical list with tickbox · title · description · due-date · assignee · more-menu, plus a header with progress…

    • Card display

      Base content card. Wraps `.card`, `.card-sunk`, or `.card-warm`.

    • Divider display

      Horizontal divider. Wraps `.div-hair`, `.div-accent`, or `.div-label`.

    • Panel display

      Card with a titled header bar and a body of `.panel-row`s (or any custom children). Wraps `.panel` + `.panel-head` from chapter 05.

    • StatCard display

      Dashboard stat / metric card. Wraps `.stat-card` from chapter 05.

    • KpiTile display

      Big-number tile for the top row of a dashboard. Wraps `.kpi-tile` from chapter 05.

    • FeatureCard display

      Feature card — icon + title + body + optional deeplink. Wraps `.feat-card` from chapter 05. Hover lifts 2px and shifts border to accent.

    • TestimonialCard display

      Testimonial card with optional oversized Fraunces glyph. Wraps `.testim-card` from chapter 05.

    • MediaCard display

      Media / blog card. Wraps `.media-card` (or `.media-card-wide`) from chapter 05.

    • CalloutCard display

      Full-bleed callout / CTA surface. Wraps `.cta-card` (or `.cta-card-ink`) from chapter 05.

    • DashboardTile display

      Three-zone dashboard content tile. Wraps `.dash-tile`.

    • PricingCard display
  • 20 Explainability 5
    • JourneyGraph interactive use client

      Journey graph — agent reasoning visualisation. A node-and-edge SVG diagram where each node is a step in an agent's reasoning trace…

    • TraceEventCard interactive use client
    • TraceEventCard interactive use client
    • SourcePassage display

      The kit's source / evidence / citation passage — a quoted block with a cite line (source · relevance · meta · optional link). Highlight…

    • SourceCard interactive use client

      The kit's knowledge card — `label · value · meta` head that expands to a source body. The body can be supplied eagerly (`details`) or…

  • 12 Media & Presentation 5 1 live
    • VideoPlayer interactive use client

      Branded HTML5 video player. Wraps `.vid-player` from chapter 12. Drops a native `<video>` inside MagicBlocks chrome — centre play button,…

    • Carousel interactive use client live

      Snap carousel — horizontal slide scroller with a dot pager and prev/next arrows. Wraps `.carousel` from chapter 12. Uses native CSS…

    • DeviceFrame display

      Device frame — pure CSS chrome around a `.device-viewport` slot. Wraps the chapter-12 `.device` family: `.device.browser`,…

    • StageChat interactive use client

      Streaming HAPPA stage-progress chat. Wraps `.stage-chat` from chapter 12. A phone-framed conversation that token-streams each message and…

    • ProductDashboard interactive use client
  • 09 Content Blocks 15
    • Hero display

      Marketing hero — pinned warm cream surface with a dual radial bloom (pink top-right, peach bottom-left), an eyebrow pill, large display…

    • MarketingFeatureGrid display

      Marketing feature grid (3-up). Wraps `.mfg` + `.mfg-grid` from chapter 09.

    • LogoWall display

      Typography logo wall. Wraps `.lw` from chapter 09. Pinned-white surface in both themes (greyscale wordmarks otherwise vanish on dark navy).

    • TestimonialStrip display

      Hero testimonial strip — single quote with a Fraunces glyph, italicised emphasis phrases in pink, author block, and an optional stat…

    • CtaBlock display

      CTA block — closing surface that asks for the next step. Wraps `.ctab` from chapter 09. Two tonal variants: `"warm"` is the marketing…

    • StatsStrip display

      Stats strip — band of 3–4 big numbers. Wraps `.stats` from chapter 09. Tabular nums so digits stack; hairline grid between cells.

    • Faq display
    • ComparisonTable display

      Comparison table — N-column product-vs-competitor. Wraps `.compare` from chapter 09. The MagicBlocks column gets the `.is-ours` modifier…

    • TeamCard display

      Single team-member card. Wraps `.team-card`. Photo + name + role + bio.

    • PullQuote display

      Pull quote — full-bleed editorial moment between sections. Wraps `.pull-quote` from chapter 09. Oversized Fraunces-italic glyph; the quote…

    • SiteFooter display
    • CustomerLogoGrid display

      Customer logo grid. Wraps `.logo-grid-section` / `.customer-logo-wall` from chapter 09. Pinned-white surface in both themes (greyscale…

    • PressStrip display

      Press strip — "as seen in" row of press-mention logos. Wraps `.press-strip` from chapter 09. Pinned-white surface in both themes; same…

    • IntegrationGrid display

      Integration grid — square tiles for third-party integrations. Wraps `.integration-grid` from chapter 09. Each tile is a pinned-white…

    • FounderCard display

      Single founder profile card. Wraps `.founder-card`. Headshot uses `object-fit: cover` with a 1:1 aspect ratio so any crop works.

  • 06 Navigation 10 1 live
    • CommandPalette interactive use client

      ⌘K command palette — modal launcher with grouped results, fuzzy filter, and full keyboard navigation. Wraps `.cmdk` from chapter 13.

    • TopNav display

      Marketing top nav — pill-shaped horizontal bar. Wraps `.tn`.

    • SideNav display

      Compact in-app vertical navigation. Wraps `.sn`.

    • Tabs interactive use client live

      Underline-style horizontal tabs. Wraps `.tabs` + `.tabs-body`. Pink underline marks the active tab.

    • Breadcrumbs display

      Breadcrumb trail. Wraps `.bc`. Mono-typed with soft chevrons.

    • Pagination interactive use client

      Pagination component. Wraps `.pag` (or `.pag-compact`).

    • MenuDivider interactive use client

      Horizontal rule between groups of menu rows.

    • Stepper display

      Vertical stepper. Wraps `.stepper`.

    • LinkTabs display

      Cross-route tabs — `<NavLink>`-driven sibling of `<Tabs>`. Each tab is a real link; the active state is whatever the consumer's link…

    • RoomTabs interactive use client

      Top-of-page section tabs — designed for "rooms across an entity surface" (the agent builder's Overview / Persona / Knowledge / Journey / …).

  • 14 Platform Narrative 4
    • FeatureCluster display

      Feature cluster — thematically-grouped block of feature cards. Wraps `.feature-cluster` + `.fc-card` from chapter 16. Header (eyebrow + h2…

    • FeatureTable display

      Feature table — 3-column capability comparison. Wraps `.feature-table` from chapter 16. Real `<table>` semantics with `<th scope>` for…

    • ClusterMap display

      Cluster map — six labelled hexes radiating around a centre node, each an anchor link. Wraps `.cluster-map` from chapter 16. Stateless, no…

    • CounterRail interactive use client

      Counter rail — vertical 01–05 numbered circles, each anchor-linked to its section below. Wraps `.counter-rail` from chapter 16. The active…

  • 08 Feedback & Overlays 15
    • Banner interactive use client

      Page-level banner. Wraps `.banner` (`.banner-{tone}`).

    • Alert display

      Inline alert — a tighter banner for in-form / in-card surfaces. Wraps `.alert` (`.alert-{tone}`).

    • Toast interactive use client
    • Toaster interactive use client

      Toaster — global, mountable-once stack that listens to the singleton `toastStore` and renders each `<Toast>` inside a `<Portal>`. Pair…

    • Modal interactive use client

      Centred modal dialog with backdrop. Wraps `.modal-backdrop` + `.modal`.

    • Drawer interactive use client

      Slide-in drawer. Wraps `.drawer-backdrop` + `.drawer`.

    • Tooltip interactive use client

      Lightweight tooltip — shows on hover or focus, hides on blur or leave.

    • Popover interactive use client

      Click-triggered popover with viewport-aware positioning. Wraps `.popover` — the trigger is whatever you pass as `children`, the panel is…

    • BulkBar interactive use client

      Sticky bottom action bar shown when items are bulk-selected. Wraps `.bulk-bar`.

    • DialogHost interactive use client

      DialogHost — listens to the singleton `dialogStore` and renders `<Modal>`s for each open `confirm()` / `alert()` / `prompt()` call. Mount…

    • Skeleton display

      One shimmer block — the base loading placeholder. Wraps `.skel` (+ `.skel-r-{md|pill|full}`). Aria-hidden; compose into shaped fallbacks.

    • Accordion interactive use client
    • TwoPathChooserDialog interactive use client

      Two-card chooser body — drop inside a `<Modal>` to recreate the platform's recurring "pick one of two creation paths" shape (Key Fact:…

    • FilterPopover interactive use client

      Generic filter popover — a trigger button with a small active-count pill, opening a card-shaped popover with title, body, and footer slots.

    • SourceFreshnessBanner display

      Status banner for a synced source — Knowledge collection's "Sitemap Changes Found · Setup Detector", a Webhook endpoint's last-ping…

  • 07 Data Display 26 1 live
    • Avatar display

      Circle avatar with initials and a soft tinted background. Wraps `.av` (with `.av-{xs|sm|md|lg|xl}` and `.av-ring`).

    • ProgressBar display

      Linear progress bar (6px). Wraps `.prog-head` (label/value row) + `.prog-track` (rail) + `.prog-fill` (fill). Per chapter 07 §7.7.

    • ProgressRing display

      SVG progress ring. Wraps `.ring-item` with `.ring` <svg> using `.ring-bg` + `.ring-fg` strokes. Stroke length encodes value via…

    • ScoreRing display

      0–100 fit / intent / health score ring. Wraps `.score-ring`. Uses a fixed `0 0 36 36` viewBox with `r=15` (circumference ≈ 94.2); size is…

    • SLA_THRESHOLDS display

      The autoState thresholds. Exported so consumers can either: (a) skip the component-bundled `<SLARing>` and roll their own status pill with…

    • Sparkline display

      Tiny inline trend line. Wraps `.spark` (with `.spark--inline|card|page`). Inner SVG uses `.line`, optional `.area`, and `.end-dot`. Per…

    • RiskBadge display

      Risk band label. Wraps `.risk-badge` and uses `data-risk` to pick the colour. Per chapter 07 §7.17.

    • Timeline display

      Vertical activity feed. Wraps `.timeline` with `.tl-item > .tl-marker > .tl-dot` + `.tl-body > .tl-head + .tl-desc`. State classes…

    • KeyValue display

      Two-column key-value grid. Wraps `<dl class="kv">` with direct `<div>` children, each containing `<dt>` (mono uppercase key) and `<dd>`…

    • DataTable interactive use client live

      Sortable, sticky-header, cursor-paginated data table.

    • FilterChipGroup interactive use client

      Multi-select chip cluster with a leading "All" chip and an optional "+N more" overflow popover. Wraps the kit's existing `.chip` styles.

    • AvatarGroup display

      Stacked avatar group with overflow. Renders the first `max` avatars inline (overlapping by negative margin), then a "+N" pill listing the…

    • LifecyclePill display

      Typed pill for a contact's lifecycle stage. Wraps `.badge` with a value-driven tint and label.

    • TicketStatusPill display

      Typed pill for a support ticket's workflow status. Wraps `.badge` with a value-driven tint and label.

    • DealStagePill display

      Typed pill for a deal's pipeline stage. Stage names are user-defined per Spark workspace; the `color` token maps to a kit tint.

    • RiskPill display

      Typed pill for a risk / severity level. Wraps `.badge` with a value-driven tint and label.

    • Badge display

      Tiny status / count badge. Wraps `.badge` + tone variants.

    • Chip interactive use client

      Inline status / filter chip. Wraps `.chip` + tone variants. Pass `onDismiss` to render a removable × button.

    • SyncStatus interactive use client

      "Synced 3 minutes ago · Refresh" status line. Recurs on every list page in the Next Gen product app. Pure presentation — the consumer owns…

    • PayloadPreview interactive use client

      Formatted JSON payload preview card with a copy button and optional highlight pills. Used to render the live request body the platform…

    • KpiDeltaTile display

      KPI tile with an explicit period-comparison delta — the platform's "+12 new contacts vs last 7 days" shape. Pairs with the kit's existing…

    • TimeSeriesChart interactive use client
    • IconChip display

      Tinted icon-in-square primitive — for feature tiles, channel tiles, status tiles. The icon is consumer-rendered (typical: half the chip…

    • RateCard display

      Metric + tonal progress card — the "rate strip" pattern (worked-lead rate, opt-out, fail-error). Eyebrow + sub + tone-coloured big number…

    • SourceRow display

      A resource row: tinted icon chip + name + metadata sub-line + status slot + trailing slot. The canonical layout for "a list of connected…

    • StatTile display

      KPI-style stat tile. Compose into a `.stat-grid` (or `<ListScreenKpiStrip>`) to build the 4-up dashboard strip. The CSS surface lives in…

  • 19 Conversation 5
    • JourneyBlockPicker display

      Hand-back target picker for `<TakeoverConsole>` — when the operator is done, they choose where the AI resumes: pick up where it paused,…

    • TakeoverConsole interactive use client

      The live human-takeover console — `<SessionPage mode="live">`'s body. When a conversation needs a person, the AI **pauses** and the…

    • ChatComposer interactive use client

      Bottom-of-transcript composer — autogrowing textarea + Send button with optional attachment / action slots. Designed to live inside a…

    • MessageTraceButton display

      Per-message "robot head" trace button — the icon a consumer renders in a `<ChatMessage actions={...}>` slot to open the trace modal for…

    • LiveChatTester interactive use client
  • 03 Buttons & Controls 7
    • Button display

      The kit's canonical button. Wraps the `.btn` family of CSS classes from `@magicblocksai/css`. All native `<button>` props are passed…

    • IconButton display

      Square 36×36 icon-only button. Wraps `.icon-btn` and `.icon-btn-primary`.

    • ButtonGroup display

      Adjacent buttons share corners and a single hairline. Wraps `.btn-group`.

    • Checkbox interactive use client

      Standard checkbox with the kit's custom check visual. Wraps `.cb`. Pass `indeterminate` for the mixed-state appearance (overrides…

    • Radio display

      Single radio button. Wraps `.rb`. Use inside `<RadioGroup>` for keyboard + ARIA grouping, or stand-alone when you only have one option.

    • Switch interactive use client

      Toggle switch (checkbox semantics, switch visuals). Wraps `.switch` + `.switch-track`.

    • SplitButton interactive use client

      Button with a primary action and a caret-menu of alternate modes ("Send now" + "Schedule send", "Save" + "Save and publish", etc).

  • 03 Icons 2
    • HomeIcon display

      Overview / dashboard. Classic house outline.

    • FileTypeIcon display

      `<FileTypeIcon contentType="…" />` — picks the right kit file-type glyph from a MIME string. Forwards every standard icon prop (`size`,…

  • 21 Designer Toolkit 2
    • ColorField interactive use client
    • WIDGET_SCHEMES interactive use client

      Canonical "popular scheme" presets used by the widget designer's default styling. Consumers can pass their own list — these are provided…

  • 25 Chat Widget 7
  • 22 Billing 6
    • PlanCard display

      A plan-tier card. Renders a name + price/period + description + feature list + CTA. Three intensities (`muted` / `accent` / `ink`) cover…

    • UsageMeter display

      Labeled progress bar with current/limit numbers, an overage indicator, and an optional projection line. Pure presentational — the consumer…

    • InvoiceRow interactive use client

      A single invoice row — date + number + amount + status pill + optional download icon. Used inside `<BillingHistoryTable>` or composed…

    • PaymentMethodCard interactive use client

      A card-on-file display showing brand mark + last 4 digits + expiry + cardholder name + Edit / Remove action buttons. An optional "Primary"…

    • BillingHistoryTable interactive use client

      A composed billing-history table — filter chips at the top, sort toggle on the Date column header, body of `<InvoiceRow>` rows below.…

    • BillingPage display

      Page-shaped wrapper composing chapter 24's billing primitives into a complete billing-page layout. Sections render in order: Plans → Usage…

  • 23 Workspace 16
    • RoleBadge display

      A small pill rendering one of the four workspace roles — Admin, Editor, Billing, Viewer. The label + tint come from `ROLE_TAXONOMY`; the…

    • MemberRow interactive use client

      A single team-member row inside a `<ul class="member-list">`. Renders the member's avatar + name + email + `<RoleBadge>` + last-active…

    • InviteRow interactive use client

      A single pending-invite row inside a `<ul class="invite-list">`. Renders the invitee's email + `<RoleBadge>` + meta line (`"invited by … ·…

    • TeamHeaderBlock display

      Per-page header for team / workspace surfaces. Eyebrow + title + optional member-count pill + Invite CTA on the head row, with an optional…

    • WorkspaceMembersPage display

      Page-shaped wrapper composing chapter 25's workspace primitives into a complete team-administration page layout. Sections render in order:…

    • IntegrationsPage display

      Page-shaped wrapper composing chapter 26's integrations primitives into a complete integrations-page layout. Sections render in order:…

    • SubNav display

      Vertical icon+label sub-nav column. Used inside master-detail page chromes — Dashboard left rail (13.19), Library tools side (15.12),…

    • SubNavLabel display

      Group header inside `<SubNav>`. Renders an uppercased mono caption (10px JetBrains Mono, fg-faint) above a cluster of related…

    • PackageGrid display

      Radio-style "pick one amount / tier / size" grid. Six columns on desktop, three on tablet. Each option is a `<button role="radio">`…

    • TraceItemCard interactive use client

      Single expandable card from the kit's trace-item family. Used inside `<TraceTimeline>` events but also useful standalone — for citation…

    • SUB_ACTION_TYPES interactive use client

      Action types a **quick-reply button** may trigger (v1 `actionButton.action`). Excludes `add_buttons` (no buttons-in-buttons — this…

    • AgentBuilderPane display

      The main edit pane of the builder — header over a scrollable body, with an optional sticky footer. Exposed as `AgentBuilderShell.Pane`;…

    • RailGroup interactive use client

      A collapsible section in the builder rail: a header (glyph · label · count · chevron) over a body of rows. Drop-in uncontrolled by…

    • PaneHeader interactive use client

      The header of an `AgentBuilderShell.Pane`: optional collapse button, glyph + title + badge, a description line, and a `PaneTabs` strip.

    • PaneTabsContext interactive use client

      Internal — shared between `PaneTabs` and `PaneTab`.

    • JobCard interactive use client

      A job row inside the pane body. `kind="general"` is a free-text instruction (green tag); `kind="collect"` is a named key-fact slot (pink…

  • 24 Integrations 4
    • IntegrationCard display

      A directory tile for one third-party integration. Renders the vendor's logo + name + status pill in a flex head, an optional description…

    • IntegrationsGrid interactive use client

      Wrapper around a grid of `<IntegrationCard>` children with an optional row of category filter chips above. The chips themselves use the…

    • WebhookConsole interactive use client

      A mono-font table of recent webhook deliveries — timestamp / endpoint / event / status / duration. Status codes are colour-coded by first…

    • OAuthCallbackBanner display

      A page-level banner that confirms the outcome of an OAuth round-trip — "Slack connected", "Connection failed", "Awaiting confirmation".…

  • 26 Embed Extras 3
  • 01 Foundations 1
    • Logomark display

      MagicBlocks glyph — the spark mark. Twelve gradient polygons forming the four-quadrant spark: pink (top-right), yellow (top-left), green…

Want this as JSON? /api/components.json · per-component: /api/components/{Name}.json