Component Component protocol schemas
Empty Properties Schema
Source: packages/spec/src/ui/component.zod.ts
import { AIChatWindowProps, ElementButtonProps, ElementFilterProps, ElementImageProps, ElementNumberProps, ElementRecordPickerProps, ElementTextProps, PageAccordionProps, PageCardProps, PageHeaderProps, PageTabsProps, RecordActivityProps, RecordChatterProps, RecordDetailsProps, RecordHighlightsField, RecordHighlightsProps, RecordPathProps, RecordRelatedListProps } from '@objectstack/spec/ui' ;
import type { AIChatWindowProps, ElementButtonProps, ElementFilterProps, ElementImageProps, ElementNumberProps, ElementRecordPickerProps, ElementTextProps, PageAccordionProps, PageCardProps, PageHeaderProps, PageTabsProps, RecordActivityProps, RecordChatterProps, RecordDetailsProps, RecordHighlightsField, RecordHighlightsProps, RecordPathProps, RecordRelatedListProps } from '@objectstack/spec/ui' ;
// Validate data
const result = AIChatWindowProps. parse (data);
Property Type Required Description mode Enum<'float' | 'sidebar' | 'inline'>✅ Display mode for the chat window agentId stringoptional Specific AI agent to use context Record<string, any>optional Contextual data to pass to the AI aria Objectoptional ARIA accessibility attributes
Property Type Required Description label string✅ Button display label variant Enum<'primary' | 'secondary' | 'danger' | 'ghost' | 'link'>✅ Button visual variant size Enum<'small' | 'medium' | 'large'>✅ Button size icon stringoptional Icon name (Lucide icon) iconPosition Enum<'left' | 'right'>✅ Icon position relative to label disabled boolean✅ Disable the button aria Objectoptional ARIA accessibility attributes
Property Type Required Description object string✅ Object to filter fields string[]✅ Filterable field names targetVariable stringoptional Page variable to store filter state layout Enum<'inline' | 'dropdown' | 'sidebar'>✅ Filter display layout showSearch boolean✅ Show search input aria Objectoptional ARIA accessibility attributes
Property Type Required Description src string✅ Image URL or attachment field alt stringoptional Alt text for accessibility fit Enum<'cover' | 'contain' | 'fill'>✅ Image object-fit mode height numberoptional Fixed height in pixels aria Objectoptional ARIA accessibility attributes
Property Type Required Description object string✅ Source object field stringoptional Field to aggregate aggregate Enum<'count' | 'sum' | 'avg' | 'min' | 'max'>✅ Aggregation function filter [__schema0](./__schema0)optional Filter criteria format Enum<'number' | 'currency' | 'percent'>optional Number display format prefix stringoptional Prefix text (e.g. "$") suffix stringoptional Suffix text (e.g. "%") aria Objectoptional ARIA accessibility attributes
Property Type Required Description object string✅ Object to pick records from displayField string✅ Field to display as the record label searchFields string[]optional Fields to search against filter [__schema0](./__schema0)optional Filter criteria for available records multiple boolean✅ Allow multiple record selection targetVariable stringoptional Page variable to bind selected record ID(s) placeholder stringoptional Placeholder text aria Objectoptional ARIA accessibility attributes
Property Type Required Description content string✅ Text or Markdown content variant Enum<'heading' | 'subheading' | 'body' | 'caption'>✅ Text style variant align Enum<'left' | 'center' | 'right'>✅ Text alignment aria Objectoptional ARIA accessibility attributes
Property Type Required Description items Object[]✅ allowMultiple boolean✅ Allow multiple panels to be expanded simultaneously aria Objectoptional ARIA accessibility attributes
Property Type Required Description title stringoptional Display label (plain string; i18n keys are auto-generated by the framework) bordered boolean✅ actions string[]optional body any[]optional Card content components (slot) footer any[]optional Card footer components (slot) aria Objectoptional ARIA accessibility attributes
Property Type Required Description title string✅ Page title subtitle stringoptional Page subtitle icon stringoptional Icon name breadcrumb boolean✅ Show breadcrumb actions string[]optional Action IDs to show in header aria Objectoptional ARIA accessibility attributes
Property Type Required Description type Enum<'line' | 'card' | 'pill'>✅ position Enum<'top' | 'left'>✅ items Object[]✅ aria Objectoptional ARIA accessibility attributes
Property Type Required Description types Enum<'comment' | 'field_change' | 'task' | 'event' | 'email' | 'call' | 'note' | 'file' | 'record_create' | 'record_delete' | 'approval' | 'sharing' | 'system'>[]optional Feed item types to show (default: all) filterMode Enum<'all' | 'comments_only' | 'changes_only' | 'tasks_only'>✅ Default activity filter showFilterToggle boolean✅ Show filter dropdown in panel header limit integer✅ Number of items to load per page showCompleted boolean✅ Include completed activities unifiedTimeline boolean✅ Mix field changes and comments in one timeline (Airtable style) showCommentInput boolean✅ Show "Leave a comment" input at the bottom enableMentions boolean✅ Enable @mentions in comments enableReactions boolean✅ Enable emoji reactions on feed items enableThreading boolean✅ Enable threaded replies on comments showSubscriptionToggle boolean✅ Show bell icon for record-level notification subscription aria Objectoptional ARIA accessibility attributes
Property Type Required Description position Enum<'sidebar' | 'inline' | 'drawer'>✅ Where to render the chatter panel width string | numberoptional Panel width (e.g., "350px", "30%") collapsible boolean✅ Whether the panel can be collapsed defaultCollapsed boolean✅ Whether the panel starts collapsed feed Objectoptional Embedded activity feed configuration aria Objectoptional ARIA accessibility attributes
Property Type Required Description columns Enum<'1' | '2' | '3' | '4'>✅ Number of columns for field layout (1-4) layout Enum<'auto' | 'custom'>✅ Layout mode: auto uses object compactLayout, custom uses explicit sections sections string[]optional Section IDs to show (required when layout is "custom") fields string[]optional Explicit field list to display (optional, overrides compactLayout) aria Objectoptional ARIA accessibility attributes
Highlight field: bare name, or {name,label?,icon?,type?}
This schema accepts one of the following structures:
Type: string
Property Type Required Description name string✅ Field name on the record label stringoptional Display label (overrides schema label) icon stringoptional Icon name (lucide icon key) type stringoptional Override cell renderer type (rare)
Property Type Required Description fields string | Object[]✅ Key fields to highlight (1-7 fields max, typically displayed as prominent cards). Each item may be a bare field name or {name, label?, icon?, type?} for inline overrides. layout Enum<'horizontal' | 'vertical'>✅ Layout orientation for highlight fields aria Objectoptional ARIA accessibility attributes
Property Type Required Description statusField string✅ Field name representing the current status/stage stages Object[]optional Explicit stage definitions (if not using field metadata) aria Objectoptional ARIA accessibility attributes
Property Type Required Description objectName string✅ Related object name (e.g., "task", "opportunity") relationshipField string✅ Field on related object that points to this record (e.g., "account_id") columns string[]✅ Fields to display in the related list sort string | Object[]optional Sort order for related records limit integer✅ Number of records to display initially filter Object[]optional Additional filter criteria for related records title stringoptional Custom title for the related list showViewAll boolean✅ Show "View All" link to see all related records actions string[]optional Action IDs available for related records aria Objectoptional ARIA accessibility attributes