@magicblocksai/css
vanillaThe brand stylesheet — every CSS variable + every component class, ready to drop into any HTML, Astro, 11ty, or Hugo project.
npm install @magicblocksai/css 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.
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.
The brand stylesheet — every CSS variable + every component class, ready to drop into any HTML, Astro, 11ty, or Hugo project.
npm install @magicblocksai/css Typed React components — Tailwind preset, dark mode, reduced-motion-aware, keyboard-nav primitives baked in.
npm install @magicblocksai/ui Pure data — colours, type, spacing, asset URLs, voice rules. Same JSON shape as the API, ready for codegen + agent tooling.
npm install @magicblocksai/brand Every Library surface mirrors a structured endpoint. Hit any URL below for raw JSON. Every chapter HTML also serves as Markdown — append .md.
Every component @magicblocksai/ui exports. Filter by interactivity, search by name, follow each row to its Library demo for the visual reference.
Page-shell wrapper for any kit-style chapter / reference page. Sets `data-theme` on its root so token swaps cascade to descendants. The…
The kit's top navigation bar — brand mark + a native `<select>` chapter picker + light/dark theme toggle on the right. Wraps `.topnav`…
The kit's deployed top-nav chrome — brand + breadcrumb pill + inline sections strip + mega-dropdown chapter picker + scroll-capped mobile…
Universal Cmd-K palette for the kit-site. Searches across components, chapter sections, assets, chapters, and top-level pages.
One demo block (the `.el` block in chapter HTML). Renders the head with a name + optional class tag, an optional one-line description,…
The HTML / CSS / JS / React code-tab strip with tab switcher + copy button — the same chrome the chapter HTML pages render below each…
Light / Dark theme switch — the same control the chapter pages use.
Time-grouped list — date bands + per-row content. Designed for calendar / upcoming / agenda surfaces ("Today" + "Tomorrow" event groups,…
Onboarding step — three-up flow with a top stepper, a focused panel, and back / continue actions. Wraps `.ob`.
Red-bordered container for destructive actions. Takes children — consumers compose any number of `<DangerZoneAction>` rows inside. Used as…
Default presets: Last 7 / 30 / 90 days, This month, Last month, This year. Exported so consumers can extend rather than fully replace.
The kit's default lead-generation lifecycle. Generic enough for any industry: Engage → Qualify → Follow-up → Converted → Re-engage.…
1x1 transparent GIF data URI used as the masked-image placeholder. Matches what the inbound-email sanitiser stamps onto blocked `<img>`…
Collapsible AI-generated summary card — the kit's standard "here's a TL;DR of this conversation / session / agent diff" banner. Defaults…
Standalone code sample with a header bar — language pill + filename + copy button — wrapping `<pre><code>`. Wraps `.codeblk` from chapter 7.
Small reusable copy-to-clipboard button. Wraps `.copy`. On click, writes `value` to `navigator.clipboard.writeText(...)`, swaps the label…
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…
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…
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…
The Overview's accountability card — recent human and Sage edits to the working copy, each timestamped; Sage entries carry an Undo so the…
A key fact's behaviour, said out loud — "Asked in Greeting · listened for everywhere", "Never asked · only listened for in Discovery" —…
The block editor's orientation strip — "Leads to → Discovery, once every key fact here is collected" — with the reverse half ("Reached…
One template in the new-agent gallery — name, one-line pitch, the journey shape as a mini block chain, and what it ships with.…
The new-agent creation sheet's grid of `TemplateCard`s — the MagicBlocks starter set, the workspace's saved templates, and the dashed…
The journey rail's block-template drawer — the MagicBlocks starter set (Greeting, Qualify, Objection handling, Pricing, Booking,…
Two-column field mapper — left side picks a MagicBlocks data field, right side picks the destination/source on an external system (HubSpot…
Button with built-in pending / ok / error chip — wraps an async probe (MCP Discover Tools, Webhook Test, HubSpot Test, Form Test) and…
Version-switcher dropdown — clicked label opens a menu of prior versions with timestamps and optional status pills. Used for Agents,…
Multi-channel icon strip. Composes a column of 22×22 chips indicating which channels (web / SMS / email / voice / WhatsApp) an agent…
The agent-builder action wizard shell — a 2-column layout (actions list + wizard pane with a step header, scrolling body, and footer).…
The actions mini-column for the agent-builder wizard — a count header, the list of actions on the current block, and a "New Action"…
Numbered step indicator for a wizard (Action · Conditions · Goal). Completed steps show a check glyph; the active step is highlighted.…
Registry-driven grid of action-type tiles + a detail card for the selection. Every entry in the action registry renders automatically —…
Renders the config surface for an action, driven by the registry: a custom `Panel` if the type declares one, else its declarative `fields`…
Renders one {@link ActionFieldSpec} as the matching kit primitive (`text`→`<Input>`, `select`→`<Select>`, `switch`→`<Switch>`,…
Snippet-or-custom message editor — a Select | Custom toggle that swaps between picking a saved snippet (`<Select>`) and typing inline text…
Custom config panel for the **Add Calendar** action — the complex exemplar proving the registry's `Panel` escape hatch. Composes…
Custom config panel for **Switch Journey** — directs the agent to a different journey block and/or channel. Composes `<Select>` (block +…
Custom config panel for **Add Buttons** — quick-reply buttons shown before and after a message. Composes two `<MessageField>`s (before /…
Custom config panel for **Add Forms** — collect end-user info via a saved form. Picks the form (`<Select>` from `context.forms`) and…
Custom config panel for **Human Takeover** — pause the AI and route the conversation to a human. A follow-up `<Select>` (None / Slack);…
Custom config panel for **Run Task** — the instructions the agent follows when a condition is met. A Select | Custom toggle picks a saved…
The agent-builder wizard's **Step 3 — Goal**: pick the goal this director works toward (`<Select>` from the workspace goals), and — once a…
The agent builder topbar: back button · name + type chip · version + unsaved meta · trailing action pills. Pass it to…
The agent builder's left rail — a scroll container for nested `RailGroup`s, leaf `RailItem`s, and the sortable Journey `RailBlockItem`s.…
Three-tier pricing page. Wraps `.pg` + `.pg-grid`.
Two-panel sign-in / sign-up page shell. Wraps `.au` (form) + `.au-side` (testimonial). On mobile the panels stack; the side moves to the…
404 / not-found page. Wraps `.nf` — the warm cream canvas with double radial blooms and a Fraunces-italic title.
Conversation preview — the chat surface used on landing pages, dashboards, and case studies. Wraps `.cv` (paper card) with `.cv-head`,…
App dashboard shell — warm sidebar + paper main. Wraps `.dash`.
Full-viewport app chrome — sidebar + main column with an optional sticky topbar. Sibling to `<DashboardShell>`, but built for whole-app…
The batteries-included NextGen app shell. Composes the bare `<AppShell>` with a fully-assembled collapsible rail (brand · workspace…
The thin, consistent frame for a standard inner section — pinned `header`, a scrollable body with page gutters, and an optional pinned…
`<SectionCard.Empty>` — render the canonical empty-state stack from inside any body slot (free-form children, not just the `emptyState`…
Page-level empty state, distinct from the icon-only `<EmptyState>` primitive. Wraps the chapter-07 `.empty` shell with chapter-10…
Two-column settings shell. Wraps `.settings` (200px nav + fluid content).
A single item in an `<AppShell>` / `<WorkspaceShell>` sidebar — the 36×36 nav button that collapses to an icon-only band and expands to…
The top band of an `<AppShell>` / `<WorkspaceShell>` sidebar — brand lockup on the left, a collapse-toggle chevron on the right. Purely…
The workspace identity control at the top of a `<WorkspaceShell>` rail — letter-box (or uploaded-logo) avatar + workspace name + sub-line.…
The grouped navigation column of a `<WorkspaceShell>` rail — a `<nav>` that stacks `<WorkspaceNavSection>` labels and `<WorkspaceNavIcon>`…
The signed-in user control pinned to the bottom of a `<WorkspaceShell>` rail. Three modes: - **menu** (`menu`): a trigger that opens a kit…
The in-rail light/dark control for a `<WorkspaceShell>` bottom cluster — what lets a sidebar-first app drop the top bar entirely. Toggles…
The **optional** compact top bar for a `<WorkspaceShell>` (~48px). Sidebar-first apps omit it entirely — the rail's bottom cluster already…
The canonical inner-section header — back · eyebrow · title · subtitle · actions · optional tabs. The one header every standard section…
Page header — the canonical "eyebrow · title · summary · actions" rhythm every product-app route reaches for. Wraps `.page-header` from…
The three-line room hero — eyebrow · display heading · lede — that opens every agent-builder room. A thin composition of `<Eyebrow>` +…
Density-mode wrapper. Sets `data-density` on its root so descendants — and any CSS that consumes `var(--row-h)` — automatically respond.
CRM-flavoured empty state — illustration + headline + lede + primary CTA + secondary fallback. Wraps `.empty-card` from chapter 13.
Left-rail navigation primitive for settings pages. Groups items into labelled sections with optional icons + count badges. The active item…
Per-page header for settings pages. Eyebrow + title + description + actions row. Layers atop `<PageHeader>` thematically but with a…
Labelled row containing a switch on the right. Used 5–20× per settings page for boolean preferences. Composes the kit's `<Switch>`…
A card displaying an API key with masked-by-default token, reveal + copy + (optional) revoke actions, and last-used / created metadata.
A single session row inside `<SessionList>`. Renders device + (optional) location + last-active timestamp on the left, with a per-session…
Portal-mounted sticky bottom bar that surfaces a "you have unsaved changes" message with Save and Discard actions. Controlled-only:…
Page-shaped wrapper composing `<SettingsShell>` + `<SettingsNavRail>` + `<SettingsHeaderBlock>` + body. Drop-in for the common API-keys /…
Named query views rail — labeled rows with optional counts, icons, group headers, and starring. Backs the Sessions left-rail saved views…
Floating help / chat launcher — the global bottom-right "Magic on Magic" bubble that appears on every page of the Next Gen app. Open state…
Indeterminate route-load progress bar. A 2px gradient slides across the anchored edge while `active`; fades out smoothly when `active`…
Async @-mention picker built on the kit's `<Textarea>`.
Multi-select with chip-rendered selections and a keyboard-navigable popover. Composes Combobox-style search with persistent multi-pick (no…
Inline edit-in-place date field. Click the resting label to swap to a native `<input type="date">`; Enter / blur commits, Escape cancels.…
Drag-grip + secondary-action handle for sortable cards / rows.
Single-date picker — trigger button shows the formatted date; a popover with a single-month calendar opens on click. Keyboard: arrow keys…
Searchable single-select combobox. See `ComboboxProps` for the full surface; pair static `options` with `getLabel` for client-side…
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…
TipTap-shaped rich text editor backed by a sanitised contenteditable.
Read-only renderer for rich-text HTML authored in `<RichTextEditor>` or `<RichTextEditorPro>`. Sanitises the input against the kit…
Channel-level opt-out toggle with optional consent-event log. Wraps `<Switch>` plus a `.consent-events` audit list.
Single-line text input with `{{ }}` merge-tag autocomplete. Wraps `.input` with a `<Popover>` for tag suggestions.
Text input. Wraps `.input` (and `.input-group` + `.input-affix` when prefix/suffix are passed).
Multiline text input. Wraps `.input` applied to a `<textarea>`.
Native `<select>` styled to match the kit's `.input` family.
Form label. Pair with the corresponding `htmlFor` to associate with an input. Wraps `.input-label` (and renders `.input-hint` when `hint`…
Numeric slider with paired value readout — the kit's standard "creativity", "temperature", "weight" control. Drop-in: works uncontrolled…
Composite count + unit duration input — the kit's standard "wait for…" editor. Used in the `No message received from user for…` condition…
List of key/value pairs with add + remove affordances — the canonical shape for MCP auth headers, Webhook headers, HTTP function parameters.
Textarea + `Insert snippet` picker — the canonical text input for every agent message field, persona prompt, custom-fallback message, and…
List of textarea variants with add + remove. Used for AI Message Versions (randomised by the agent runtime), Snippet Variants tab, and any…
Vertical radio list rendered as cards with label + description + optional reveal sub-form. The kit's standard "pick one option from a few,…
Repeater of select + remove rows. Used for the Brain → MCP picker (`+ Add MCP`), Knowledge Base Collections multi-select (≤3),…
Simple HH:MM time input. Wraps the native `<input type="time">` for keyboard parity + accessibility, with an optional 12-hour caption.
Chip-input for hostnames — used for the Design & Go Live domain whitelist, CORS origin lists, and any "list of hosts with validation"…
Grouped expandable list — each group has a header (label + count + meta) and a body of items that's revealed when expanded. Backs the…
Collapsed row → expanded inline editor — the kit's pattern for "click a Knowledge Q&A item to edit it in place", Missing Knowledge convert…
Email thread viewer — full-width rows (no chat bubbles), per-message header with sender + Details toggle, latest-expanded with older…
Gmail-shaped inbox row — left-side star, avatar, sender + subject + preview on a single truncated line, time on the right edge,…
Collapsible nav-group wrapper. Renders a `<details>` element styled by the kit's `.dash-nav-group` class — the section heading is the…
Container for a stack of `<MiniCardLink>` rows. Composes naturally inside a `<SectionCard>` body slot. Renders as `<ul>` for screen-reader…
Human-in-the-loop review queue. A list of pending agent responses awaiting reviewer approval — each row carries a status dot, summary…
Kanban board — the deals view's spine. Wraps `.kanban` from chapter 14.
Activity timeline — vertical hairline rail with iconified nodes per event, filter chips at the top, and date dividers between days. Wraps…
Inbox container — wraps `.inbox` from chapter 14. Renders as an unordered list so the row markup is semantic.
MRR composition chart — vanilla SVG diverging-bar chart for the revenue dashboard. Wraps `.mrr-chart` from chapter 14.
Read-only SMS-safe-hours indicator: the compliant send window for a contact's timezone, with a live "now" marker. Glanceable "OK to text"…
Free-form, agent-summarised memories about a contact — the "soft" knowledge a structured form can't hold. Each row: optional icon · text ·…
Structured facts an agent captured about a contact, each with provenance. The keys adapt to any industry — nothing hard-coded. Pairs with…
A contact / record engagement score as a drop-in molecule: a `<ScoreRing>` paired with a `<Sparkline>` trend and an optional "computed…
Channel-aware outbound agent picker. The launcher opens a `<Modal>` listing the agents that can start an outbound to this contact, each…
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…
The "expand memories" popup. The launcher opens a `<Modal>` listing every memory the agent captured — text, category, confidence, the…
The summary band atop a completed session — the contact-overview-consistent header: a Sage AI summary, then Key facts · Memories ·…
A completed session — summary-led, consistent with the contact overview. A hero (identity · channel · agent · Goals chips · stat row),…
The top-level Sessions overview — every agent conversation, filterable, in the same chrome as the Contacts page. Composes the kit's…
The AI-native CRM contact page. A page-shaped composition: a warm identity hero with a lifecycle journey bar + universal stat strip, then…
Conversation viewer shell — header, scrollable message area, footer. Children are a flat stack of `<ChatMessage>` nodes.
Page-shell container for list-shaped surfaces — Contacts, Agents, Campaigns, Sessions, anything else where the page is "header + tabs +…
Header row for `<ListScreen>`. Two API surfaces:
4-up grid container sitting between `<ListScreenHead>` and `<ListScreenTabs>`. Composes the kit's `<KpiDeltaTile>` (chapter 7.27) or any…
Status filter tabs row. Sits between `<ListScreenKpiStrip>` (or `<ListScreenHead>` if no KPI strip) and the body. Underline-pill pattern —…
Footer row for `<ListScreen>`. Two layouts via the `centered` prop:
Hero "score + interpretation + breakdown" card. Composes `<ScoreRing>` + `<Card>`-style surface + label / headline / meta slots.
Event-log / scan-narration list. Vertical hairline list with status-coloured rows for any long-running async process (scan, build, deploy,…
@deprecated Since v4.0.0 — a thin alias of [`<SourcePassage>`](./SourcePassage) (`source` → `cite`). It renders SourcePassage's markup.…
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…
Scored-rubric display for evaluating AI agent responses. A vertical panel of criteria — each carrying a name, score (0–10), pass / fail /…
Sage AI drawer — right-anchored AI assistant. Wraps `.sage-drawer` from chapter 15.
Compose drawer — the single email composer used everywhere. Wraps `.compose` from chapter 15.
AI suggestion card — Sage's proactive in-rail card. Wraps `.ai-card` from chapter 15.
Knowledge-base suggestion card — Sage's "assist" surface for support agents. Wraps `.kb-card-suggest` from chapter 15.
Confetti win-moment trigger — a `<button>` that fires a one-shot brand-palette confetti burst + toast on click. Wraps the chapter-15…
The 12 conditional-retrieval topics (NextGen `PlaybookChunkLabel`) mapped to their plain, customer-facing labels.
One row in the Knowledge collection editor: source icon + title + adaptive one-line preview + optional topic chip + updated time. Wraps…
One lane in the Knowledge editor — a tinted header (dot + plain name + helper + count) over a list of `KnowledgeItemRow`s. The three lanes…
The "Add knowledge" dropdown — the four ways to bring knowledge into a collection: write it yourself, import from a website, upload a…
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…
Sage's unit of change — a copilot edit as a card the operator stays in charge of. Pending proposals wait for Accept · Adjust · Dismiss;…
Animated "scroll for more" indicator — mono uppercase label above a vertical hairline that pulses on a 2.4s loop. Honours…
Two-column conversation comparison container. Designed for product / behaviour / before-after comparison content — e.g. "how does our…
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…
Brand timeline — horizontal milestone ticks with labelled rails. Used for the About page origin story ($200M → AI mortgage team →…
Chat comparison — dual-conversation proof widget. Same inbound lead message in both columns; the asymmetry IS the message. Generic chatbot…
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,…
Dormant-lead mine — a CRM mockup table where every row continuously cycles through cold → scanning → drafting → sent → replied,…
Ecosystem rings — three concentric rings with the engine at centre, today's products in the middle ring, and tomorrow's vision on the…
Default region scenarios — the chapter §11.12 "Closest edge wins" demo content baked in so `<EdgeRace />` works with zero props. Five…
Engine block — central ink-block engine with four channel labels orbiting it (40s revolution), lead-source cards stacking on the left and…
Guardian shield — one shield, one promise. Six universal compliance primitives (consent, privacy, encryption, retention, opt-out, audit)…
Handoff card — credential-style card showing a qualified lead ready for human handoff. Five+ industry variants via the `role` prop — each…
HAPPA arc — five conversation stages (Hook · Align · Personalise · Pitch · Action) anchored along a soft S-curve, with a continuous tracer…
Hero bloom canvas — large ambient SVG backdrop for hero sections. Three soft radial gradients with slow drift, optional drifting motes.…
Hero live demo — flagship laptop hero with a looping mortgage-scenario conversation, response-timer overlay, status badge, and scenario /…
Integration hub — radial diagram with 8 dashed spokes converging on a central MagicBlocks core, with branded integration chips at the…
Journey map — horizontal branching flow with labelled connectors. One component, many variants — prequalification, follow-up,…
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…
Race timeline — split timestamp sequence with a left lane that loses (cold, drawn-out) and a right lane that wins (sub-second beats marked…
Revenue calculator — dual-tab widget (Activation + Reactivation) with plan-aware pricing and live computation. Wraps `.roi-calc` from…
Scoreboard — two-column contrast table for "most teams vs MagicBlocks" moments. Wraps `.scoreboard` (and `.scoreboard.dark` variant) from…
Stat badge — editorial big-number callout. Mono uppercase eyebrow + a Bricolage-display number with optional `<sup>` unit and a caption…
Triptych — three equal panels separated by arrow dividers, used for "How It Works" sections across the site. Panels stack on mobile and…
Inline edit-in-place headline. Click the resting heading to swap to a text input styled to match; Enter / blur commits, Escape cancels.
Kit-styled heading. Renders an h1–h6 with the kit's typography defaults. Pass `display` for the hero / marketing variant (56px, bold,…
Small uppercase label that sits above a heading. Wraps `.eyebrow`. Mono, 11px, accent-text colour.
Larger paragraph (19px) that sits below a hero heading. Wraps `.lede`. Use exactly once per page hero. For body copy, use a plain `<p>`.
Small helper / metadata text (13px, dim). Wraps `.caption`.
Pull quote / testimonial figure. Wraps `<figure class="quote">` with a `<blockquote>` and an optional `<figcaption>` for attribution.…
Slim full-width sub-nav strip beneath the topnav. Answers "is this for me?" in under half a second.
Side-by-side cost-comparison bars. Two horizontal bars stacked vertically: a full-width muted bar on top labelled with the high-cost…
Onboarding checklist — vertical list with tickbox · title · description · due-date · assignee · more-menu, plus a header with progress…
Base content card. Wraps `.card`, `.card-sunk`, or `.card-warm`.
Horizontal divider. Wraps `.div-hair`, `.div-accent`, or `.div-label`.
Card with a titled header bar and a body of `.panel-row`s (or any custom children). Wraps `.panel` + `.panel-head` from chapter 05.
Dashboard stat / metric card. Wraps `.stat-card` from chapter 05.
Big-number tile for the top row of a dashboard. Wraps `.kpi-tile` from chapter 05.
Feature card — icon + title + body + optional deeplink. Wraps `.feat-card` from chapter 05. Hover lifts 2px and shifts border to accent.
Testimonial card with optional oversized Fraunces glyph. Wraps `.testim-card` from chapter 05.
Media / blog card. Wraps `.media-card` (or `.media-card-wide`) from chapter 05.
Full-bleed callout / CTA surface. Wraps `.cta-card` (or `.cta-card-ink`) from chapter 05.
Three-zone dashboard content tile. Wraps `.dash-tile`.
Journey graph — agent reasoning visualisation. A node-and-edge SVG diagram where each node is a step in an agent's reasoning trace…
The kit's source / evidence / citation passage — a quoted block with a cite line (source · relevance · meta · optional link). Highlight…
The kit's knowledge card — `label · value · meta` head that expands to a source body. The body can be supplied eagerly (`details`) or…
Branded HTML5 video player. Wraps `.vid-player` from chapter 12. Drops a native `<video>` inside MagicBlocks chrome — centre play button,…
Snap carousel — horizontal slide scroller with a dot pager and prev/next arrows. Wraps `.carousel` from chapter 12. Uses native CSS…
Device frame — pure CSS chrome around a `.device-viewport` slot. Wraps the chapter-12 `.device` family: `.device.browser`,…
Streaming HAPPA stage-progress chat. Wraps `.stage-chat` from chapter 12. A phone-framed conversation that token-streams each message and…
Marketing hero — pinned warm cream surface with a dual radial bloom (pink top-right, peach bottom-left), an eyebrow pill, large display…
Marketing feature grid (3-up). Wraps `.mfg` + `.mfg-grid` from chapter 09.
Typography logo wall. Wraps `.lw` from chapter 09. Pinned-white surface in both themes (greyscale wordmarks otherwise vanish on dark navy).
Hero testimonial strip — single quote with a Fraunces glyph, italicised emphasis phrases in pink, author block, and an optional stat…
CTA block — closing surface that asks for the next step. Wraps `.ctab` from chapter 09. Two tonal variants: `"warm"` is the marketing…
Stats strip — band of 3–4 big numbers. Wraps `.stats` from chapter 09. Tabular nums so digits stack; hairline grid between cells.
Comparison table — N-column product-vs-competitor. Wraps `.compare` from chapter 09. The MagicBlocks column gets the `.is-ours` modifier…
Single team-member card. Wraps `.team-card`. Photo + name + role + bio.
Pull quote — full-bleed editorial moment between sections. Wraps `.pull-quote` from chapter 09. Oversized Fraunces-italic glyph; the quote…
Customer logo grid. Wraps `.logo-grid-section` / `.customer-logo-wall` from chapter 09. Pinned-white surface in both themes (greyscale…
Press strip — "as seen in" row of press-mention logos. Wraps `.press-strip` from chapter 09. Pinned-white surface in both themes; same…
Integration grid — square tiles for third-party integrations. Wraps `.integration-grid` from chapter 09. Each tile is a pinned-white…
Single founder profile card. Wraps `.founder-card`. Headshot uses `object-fit: cover` with a 1:1 aspect ratio so any crop works.
⌘K command palette — modal launcher with grouped results, fuzzy filter, and full keyboard navigation. Wraps `.cmdk` from chapter 13.
Marketing top nav — pill-shaped horizontal bar. Wraps `.tn`.
Compact in-app vertical navigation. Wraps `.sn`.
Underline-style horizontal tabs. Wraps `.tabs` + `.tabs-body`. Pink underline marks the active tab.
Breadcrumb trail. Wraps `.bc`. Mono-typed with soft chevrons.
Pagination component. Wraps `.pag` (or `.pag-compact`).
Horizontal rule between groups of menu rows.
Vertical stepper. Wraps `.stepper`.
Cross-route tabs — `<NavLink>`-driven sibling of `<Tabs>`. Each tab is a real link; the active state is whatever the consumer's link…
Top-of-page section tabs — designed for "rooms across an entity surface" (the agent builder's Overview / Persona / Knowledge / Journey / …).
Feature cluster — thematically-grouped block of feature cards. Wraps `.feature-cluster` + `.fc-card` from chapter 16. Header (eyebrow + h2…
Feature table — 3-column capability comparison. Wraps `.feature-table` from chapter 16. Real `<table>` semantics with `<th scope>` for…
Cluster map — six labelled hexes radiating around a centre node, each an anchor link. Wraps `.cluster-map` from chapter 16. Stateless, no…
Counter rail — vertical 01–05 numbered circles, each anchor-linked to its section below. Wraps `.counter-rail` from chapter 16. The active…
Page-level banner. Wraps `.banner` (`.banner-{tone}`).
Inline alert — a tighter banner for in-form / in-card surfaces. Wraps `.alert` (`.alert-{tone}`).
Toaster — global, mountable-once stack that listens to the singleton `toastStore` and renders each `<Toast>` inside a `<Portal>`. Pair…
Centred modal dialog with backdrop. Wraps `.modal-backdrop` + `.modal`.
Slide-in drawer. Wraps `.drawer-backdrop` + `.drawer`.
Lightweight tooltip — shows on hover or focus, hides on blur or leave.
Click-triggered popover with viewport-aware positioning. Wraps `.popover` — the trigger is whatever you pass as `children`, the panel is…
Sticky bottom action bar shown when items are bulk-selected. Wraps `.bulk-bar`.
DialogHost — listens to the singleton `dialogStore` and renders `<Modal>`s for each open `confirm()` / `alert()` / `prompt()` call. Mount…
One shimmer block — the base loading placeholder. Wraps `.skel` (+ `.skel-r-{md|pill|full}`). Aria-hidden; compose into shaped fallbacks.
Two-card chooser body — drop inside a `<Modal>` to recreate the platform's recurring "pick one of two creation paths" shape (Key Fact:…
Generic filter popover — a trigger button with a small active-count pill, opening a card-shaped popover with title, body, and footer slots.
Status banner for a synced source — Knowledge collection's "Sitemap Changes Found · Setup Detector", a Webhook endpoint's last-ping…
Circle avatar with initials and a soft tinted background. Wraps `.av` (with `.av-{xs|sm|md|lg|xl}` and `.av-ring`).
Linear progress bar (6px). Wraps `.prog-head` (label/value row) + `.prog-track` (rail) + `.prog-fill` (fill). Per chapter 07 §7.7.
SVG progress ring. Wraps `.ring-item` with `.ring` <svg> using `.ring-bg` + `.ring-fg` strokes. Stroke length encodes value via…
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…
The autoState thresholds. Exported so consumers can either: (a) skip the component-bundled `<SLARing>` and roll their own status pill with…
Tiny inline trend line. Wraps `.spark` (with `.spark--inline|card|page`). Inner SVG uses `.line`, optional `.area`, and `.end-dot`. Per…
Risk band label. Wraps `.risk-badge` and uses `data-risk` to pick the colour. Per chapter 07 §7.17.
Vertical activity feed. Wraps `.timeline` with `.tl-item > .tl-marker > .tl-dot` + `.tl-body > .tl-head + .tl-desc`. State classes…
Two-column key-value grid. Wraps `<dl class="kv">` with direct `<div>` children, each containing `<dt>` (mono uppercase key) and `<dd>`…
Sortable, sticky-header, cursor-paginated data table.
Multi-select chip cluster with a leading "All" chip and an optional "+N more" overflow popover. Wraps the kit's existing `.chip` styles.
Stacked avatar group with overflow. Renders the first `max` avatars inline (overlapping by negative margin), then a "+N" pill listing the…
Typed pill for a contact's lifecycle stage. Wraps `.badge` with a value-driven tint and label.
Typed pill for a support ticket's workflow status. Wraps `.badge` with a value-driven tint and label.
Typed pill for a deal's pipeline stage. Stage names are user-defined per Spark workspace; the `color` token maps to a kit tint.
Typed pill for a risk / severity level. Wraps `.badge` with a value-driven tint and label.
Tiny status / count badge. Wraps `.badge` + tone variants.
Inline status / filter chip. Wraps `.chip` + tone variants. Pass `onDismiss` to render a removable × button.
"Synced 3 minutes ago · Refresh" status line. Recurs on every list page in the Next Gen product app. Pure presentation — the consumer owns…
Formatted JSON payload preview card with a copy button and optional highlight pills. Used to render the live request body the platform…
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…
Tinted icon-in-square primitive — for feature tiles, channel tiles, status tiles. The icon is consumer-rendered (typical: half the chip…
Metric + tonal progress card — the "rate strip" pattern (worked-lead rate, opt-out, fail-error). Eyebrow + sub + tone-coloured big number…
A resource row: tinted icon chip + name + metadata sub-line + status slot + trailing slot. The canonical layout for "a list of connected…
KPI-style stat tile. Compose into a `.stat-grid` (or `<ListScreenKpiStrip>`) to build the 4-up dashboard strip. The CSS surface lives in…
Hand-back target picker for `<TakeoverConsole>` — when the operator is done, they choose where the AI resumes: pick up where it paused,…
The live human-takeover console — `<SessionPage mode="live">`'s body. When a conversation needs a person, the AI **pauses** and the…
Bottom-of-transcript composer — autogrowing textarea + Send button with optional attachment / action slots. Designed to live inside a…
Per-message "robot head" trace button — the icon a consumer renders in a `<ChatMessage actions={...}>` slot to open the trace modal for…
The kit's canonical button. Wraps the `.btn` family of CSS classes from `@magicblocksai/css`. All native `<button>` props are passed…
Square 36×36 icon-only button. Wraps `.icon-btn` and `.icon-btn-primary`.
Adjacent buttons share corners and a single hairline. Wraps `.btn-group`.
Standard checkbox with the kit's custom check visual. Wraps `.cb`. Pass `indeterminate` for the mixed-state appearance (overrides…
Single radio button. Wraps `.rb`. Use inside `<RadioGroup>` for keyboard + ARIA grouping, or stand-alone when you only have one option.
Toggle switch (checkbox semantics, switch visuals). Wraps `.switch` + `.switch-track`.
Button with a primary action and a caret-menu of alternate modes ("Send now" + "Schedule send", "Save" + "Save and publish", etc).
Overview / dashboard. Classic house outline.
`<FileTypeIcon contentType="…" />` — picks the right kit file-type glyph from a MIME string. Forwards every standard icon prop (`size`,…
Canonical "popular scheme" presets used by the widget designer's default styling. Consumers can pass their own list — these are provided…
A plan-tier card. Renders a name + price/period + description + feature list + CTA. Three intensities (`muted` / `accent` / `ink`) cover…
Labeled progress bar with current/limit numbers, an overage indicator, and an optional projection line. Pure presentational — the consumer…
A single invoice row — date + number + amount + status pill + optional download icon. Used inside `<BillingHistoryTable>` or composed…
A card-on-file display showing brand mark + last 4 digits + expiry + cardholder name + Edit / Remove action buttons. An optional "Primary"…
A composed billing-history table — filter chips at the top, sort toggle on the Date column header, body of `<InvoiceRow>` rows below.…
Page-shaped wrapper composing chapter 24's billing primitives into a complete billing-page layout. Sections render in order: Plans → Usage…
A small pill rendering one of the four workspace roles — Admin, Editor, Billing, Viewer. The label + tint come from `ROLE_TAXONOMY`; the…
A single team-member row inside a `<ul class="member-list">`. Renders the member's avatar + name + email + `<RoleBadge>` + last-active…
A single pending-invite row inside a `<ul class="invite-list">`. Renders the invitee's email + `<RoleBadge>` + meta line (`"invited by … ·…
Per-page header for team / workspace surfaces. Eyebrow + title + optional member-count pill + Invite CTA on the head row, with an optional…
Page-shaped wrapper composing chapter 25's workspace primitives into a complete team-administration page layout. Sections render in order:…
Page-shaped wrapper composing chapter 26's integrations primitives into a complete integrations-page layout. Sections render in order:…
Vertical icon+label sub-nav column. Used inside master-detail page chromes — Dashboard left rail (13.19), Library tools side (15.12),…
Group header inside `<SubNav>`. Renders an uppercased mono caption (10px JetBrains Mono, fg-faint) above a cluster of related…
Radio-style "pick one amount / tier / size" grid. Six columns on desktop, three on tablet. Each option is a `<button role="radio">`…
Single expandable card from the kit's trace-item family. Used inside `<TraceTimeline>` events but also useful standalone — for citation…
Action types a **quick-reply button** may trigger (v1 `actionButton.action`). Excludes `add_buttons` (no buttons-in-buttons — this…
The main edit pane of the builder — header over a scrollable body, with an optional sticky footer. Exposed as `AgentBuilderShell.Pane`;…
A collapsible section in the builder rail: a header (glyph · label · count · chevron) over a body of rows. Drop-in uncontrolled by…
The header of an `AgentBuilderShell.Pane`: optional collapse button, glyph + title + badge, a description line, and a `PaneTabs` strip.
Internal — shared between `PaneTabs` and `PaneTab`.
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…
A directory tile for one third-party integration. Renders the vendor's logo + name + status pill in a flex head, an optional description…
Wrapper around a grid of `<IntegrationCard>` children with an optional row of category filter chips above. The chips themselves use the…
A mono-font table of recent webhook deliveries — timestamp / endpoint / event / status / duration. Status codes are colour-coded by first…
A page-level banner that confirms the outcome of an OAuth round-trip — "Slack connected", "Connection failed", "Awaiting confirmation".…
`<ChannelSandbox>` — multi-channel widget preview shell.
`<VoicePlayer>` — audio playback chrome for voice agents.
`<WidgetPersonaSwitcher>` — visitor-facing persona switcher.
MagicBlocks glyph — the spark mark. Twelve gradient polygons forming the four-quadrant spark: pink (top-right), yellow (top-left), green…
No components match.
Want this as JSON? /api/components.json · per-component: /api/components/{Name}.json