Block Catalog
All 16 block types with descriptions and data shape examples. Blocks are the atomic rendering units inside a layout region.
Data Display
dense_table
Sortable, filterable data table with row actions.
{
type: 'dense_table',
key: 'users-table',
data: {
columns: [
{ key: 'name', label: 'Name', sortable: true },
{ key: 'email', label: 'Email' },
{ key: 'role', label: 'Role', filterable: true },
],
rows: [
{ id: '1', cells: { name: 'Alice', email: 'alice@example.com', role: 'Admin' } },
{ id: '2', cells: { name: 'Bob', email: 'bob@example.com', role: 'User' } },
],
actions: [
{ id: 'edit', label: 'Edit', intent: 'secondary' },
{ id: 'delete', label: 'Delete', intent: 'danger' },
],
},
}detail_panel
Key-value detail view organized in sections.
{
type: 'detail_panel',
key: 'user-detail',
data: {
sections: [
{
title: 'General',
fields: [
{ key: 'name', label: 'Full Name', value: 'Alice Johnson' },
{ key: 'email', label: 'Email', value: 'alice@example.com' },
{ key: 'status', label: 'Status', value: 'Active', variant: 'success' },
],
},
],
},
}card_grid
Grid of cards with status indicators, actions, and metadata.
{
type: 'card_grid',
key: 'connectors-grid',
data: {
columns: 3,
cards: [
{
id: 'sap',
title: 'SAP SuccessFactors',
description: 'HR data synchronization',
status: { label: 'Connected', variant: 'success' },
actions: [{ id: 'configure', label: 'Configure', intent: 'secondary' }],
},
],
},
}link_list
Simple list of labeled links with optional icons.
{
type: 'link_list',
key: 'quick-links',
data: {
items: [
{ label: 'Documentation', href: '/docs', icon: 'book-open' },
{ label: 'API Reference', href: '/api', icon: 'code' },
{ label: 'Support', href: '/support', icon: 'help-circle' },
],
},
}status_strip
Horizontal strip of status or metric badges.
{
type: 'status_strip',
key: 'system-status',
data: {
items: [
{ label: 'API', value: 'Healthy', variant: 'success' },
{ label: 'Queue', value: '12 pending', variant: 'warning' },
{ label: 'Errors', value: '0', variant: 'neutral' },
],
},
}activity_timeline
Chronological list of events with actor and timestamp.
{
type: 'activity_timeline',
key: 'recent-activity',
data: {
events: [
{
id: '1',
actor: 'Alice',
action: 'created connector',
target: 'SAP SuccessFactors',
timestamp: '2026-04-30T14:30:00Z',
},
{
id: '2',
actor: 'Bob',
action: 'updated workflow',
target: 'Onboarding',
timestamp: '2026-04-30T13:15:00Z',
},
],
},
}Forms
form_panel
Dynamic form with field groups, validation rules, and submit action.
{
type: 'form_panel',
key: 'settings-form',
data: {
action: '/api/settings',
method: 'post',
groups: [
{
title: 'General',
fields: [
{ key: 'name', label: 'Name', type: 'text', required: true },
{ key: 'email', label: 'Email', type: 'email', required: true },
{ key: 'role', label: 'Role', type: 'select', options: [
{ value: 'admin', label: 'Admin' },
{ value: 'user', label: 'User' },
]},
],
},
],
submit: { label: 'Save', intent: 'primary' },
},
}See Forms Guide for full schema documentation.
form_builder
Drag-and-drop form field designer for custom forms.
{
type: 'form_builder',
key: 'custom-form-builder',
data: {
availableFields: [
{ type: 'text', label: 'Text Input' },
{ type: 'textarea', label: 'Text Area' },
{ type: 'select', label: 'Dropdown' },
{ type: 'checkbox', label: 'Checkbox' },
{ type: 'date', label: 'Date Picker' },
],
fields: [
{ id: 'f1', type: 'text', label: 'Full Name', required: true },
{ id: 'f2', type: 'email', label: 'Email Address' },
],
},
}sentence_builder
Natural language rule composer with slot-based segments.
{
type: 'sentence_builder',
key: 'segment-rule',
data: {
template: 'Include users where {field} {operator} {value}',
slots: {
field: { type: 'select', options: ['department', 'role', 'location'] },
operator: { type: 'select', options: ['equals', 'contains', 'starts with'] },
value: { type: 'text' },
},
rules: [
{ field: 'department', operator: 'equals', value: 'Engineering' },
],
},
}condition_tree
Nested AND/OR condition tree editor for complex rules.
{
type: 'condition_tree',
key: 'access-conditions',
data: {
root: {
operator: 'AND',
children: [
{ field: 'role', comparator: 'equals', value: 'manager' },
{
operator: 'OR',
children: [
{ field: 'department', comparator: 'equals', value: 'Sales' },
{ field: 'department', comparator: 'equals', value: 'Marketing' },
],
},
],
},
availableFields: [
{ key: 'role', label: 'Role', type: 'select' },
{ key: 'department', label: 'Department', type: 'select' },
],
},
}Content
empty_state
Placeholder for empty datasets or first-use onboarding.
{
type: 'empty_state',
key: 'no-connectors',
data: {
variant: 'first-use',
icon: 'plug',
title: 'No connectors yet',
description: 'Connect your first external system to start syncing data.',
cta: { label: 'Add Connector', href: '/connectors/new' },
},
}markdown_panel
Rendered markdown content block for documentation or notes.
{
type: 'markdown_panel',
key: 'release-notes',
data: {
content: '## Release 5.0\n\n- New connector framework\n- Improved workflow editor\n- Bug fixes',
},
}tabbed_panel
Tabbed container where each tab holds nested block descriptors.
{
type: 'tabbed_panel',
key: 'entity-tabs',
data: {
tabs: [
{
key: 'overview',
label: 'Overview',
blocks: [
{ type: 'detail_panel', key: 'tab-detail', data: { sections: [] } },
],
},
{
key: 'activity',
label: 'Activity',
blocks: [
{ type: 'activity_timeline', key: 'tab-timeline', data: { events: [] } },
],
},
],
},
}action_grid
Grid of action cards for quick actions or navigation shortcuts.
{
type: 'action_grid',
key: 'quick-actions',
data: {
columns: 4,
actions: [
{ id: 'new-user', label: 'Add User', icon: 'user-plus', href: '/users/new' },
{ id: 'import', label: 'Import CSV', icon: 'upload', href: '/import' },
{ id: 'export', label: 'Export Data', icon: 'download', href: '/export' },
{ id: 'settings', label: 'Settings', icon: 'settings', href: '/settings' },
],
},
}Visualization
metric_card
Single KPI display with value, label, and optional trend indicator.
{
type: 'metric_card',
key: 'total-users',
data: {
label: 'Total Users',
value: '1,247',
trend: { direction: 'up', value: '+12%', period: 'vs last month' },
icon: 'users',
},
}flow_editor
Visual workflow and node graph editor for automation pipelines.
{
type: 'flow_editor',
key: 'workflow-canvas',
data: {
nodes: [
{ id: 'trigger', type: 'trigger', label: 'New User', position: { x: 0, y: 0 } },
{ id: 'action1', type: 'action', label: 'Send Email', position: { x: 200, y: 0 } },
{ id: 'condition', type: 'condition', label: 'Has Manager?', position: { x: 400, y: 0 } },
],
edges: [
{ source: 'trigger', target: 'action1' },
{ source: 'action1', target: 'condition' },
],
},
}