ObjectStackObjectStack

Page

Page protocol schemas

Page Region Schema

A named region in the template where components are dropped.

Source: packages/spec/src/ui/page.zod.ts

TypeScript Usage

import { BlankPageLayout, BlankPageLayoutItem, ElementDataSource, InterfacePageConfig, PageComponentType, PageType, PageVariable, RecordReviewConfig } from '@objectstack/spec/ui';
import type { BlankPageLayout, BlankPageLayoutItem, ElementDataSource, InterfacePageConfig, PageComponentType, PageType, PageVariable, RecordReviewConfig } from '@objectstack/spec/ui';

// Validate data
const result = BlankPageLayout.parse(data);

BlankPageLayout

Properties

PropertyTypeRequiredDescription
columnsintegerNumber of grid columns
rowHeightintegerHeight of each grid row in pixels
gapintegerGap between grid items in pixels
itemsObject[]Positioned components on the canvas

BlankPageLayoutItem

Properties

PropertyTypeRequiredDescription
componentIdstringReference to a PageComponent.id in the page
xintegerGrid column position (0-based)
yintegerGrid row position (0-based)
widthintegerWidth in grid columns
heightintegerHeight in grid rows

ElementDataSource

Properties

PropertyTypeRequiredDescription
objectstringObject to query
viewstringoptionalNamed view to apply
filter[__schema0](./__schema0)optionalAdditional filter criteria
sortObject[]optionalSort order
limitintegeroptionalMax records to display

InterfacePageConfig

Interface-level page configuration (Airtable parity)

Properties

PropertyTypeRequiredDescription
sourcestringoptionalSource object name for the page
levelsintegeroptionalNumber of hierarchy levels to display
filterByObject[]optionalPage-level filter criteria
appearanceObjectoptionalAppearance and visualization configuration
userFiltersObjectoptionalUser filter configuration
userActionsObjectoptionalUser action toggles
addRecordObjectoptionalAdd record entry point configuration
showRecordCountbooleanoptionalShow record count at page bottom
allowPrintingbooleanoptionalAllow users to print the page

PageComponentType

Allowed Values

  • page:header
  • page:footer
  • page:sidebar
  • page:tabs
  • page:accordion
  • page:card
  • page:section
  • record:details
  • record:highlights
  • record:related_list
  • record:activity
  • record:chatter
  • record:path
  • record:alert
  • record:quick_actions
  • record:reference_rail
  • record:history
  • app:launcher
  • nav:menu
  • nav:breadcrumb
  • global:search
  • global:notifications
  • user:profile
  • ai:chat_window
  • ai:suggestion
  • element:text
  • element:number
  • element:image
  • element:divider
  • element:button
  • element:filter
  • element:form
  • element:record_picker

PageType

Page type — platform or interface page types

Allowed Values

  • record
  • home
  • app
  • utility
  • dashboard
  • grid
  • list
  • gallery
  • kanban
  • calendar
  • timeline
  • form
  • record_detail
  • record_review
  • overview
  • blank

PageVariable

Properties

PropertyTypeRequiredDescription
namestringVariable name
typeEnum<'string' | 'number' | 'boolean' | 'object' | 'array' | 'record_id'>
defaultValueanyoptional
sourcestringoptionalComponent ID that writes to this variable

RecordReviewConfig

Properties

PropertyTypeRequiredDescription
objectstringTarget object for review
filter[__schema0](./__schema0)optionalFilter criteria for review queue
sortObject[]optionalSort order for review queue
displayFieldsstring[]optionalFields to display on the review page
actionsObject[]Review actions
navigationEnum<'sequential' | 'random' | 'filtered'>Record navigation mode
showProgressbooleanShow review progress indicator

On this page