ObjectStackObjectStack

Page Builder

Page Builder protocol schemas

@module studio/page-builder

Studio Page Builder Protocol

Defines the specification for the drag-and-drop Page Builder UI.

The builder allows visual composition of blank pages by placing

elements on a grid canvas with snapping, alignment, and layer ordering.

Source: packages/spec/src/studio/page-builder.zod.ts

TypeScript Usage

import { CanvasSnapSettings, CanvasZoomSettings, ElementPaletteItem, InterfaceBuilderConfig, PageBuilderConfig } from '@objectstack/spec/studio';
import type { CanvasSnapSettings, CanvasZoomSettings, ElementPaletteItem, InterfaceBuilderConfig, PageBuilderConfig } from '@objectstack/spec/studio';

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

CanvasSnapSettings

Properties

PropertyTypeRequiredDescription
enabledbooleanEnable snap-to-grid
gridSizeintegerSnap grid size in pixels
showGridbooleanShow grid overlay on canvas
showGuidesbooleanShow alignment guides when dragging

CanvasZoomSettings

Properties

PropertyTypeRequiredDescription
minnumberMinimum zoom level
maxnumberMaximum zoom level
defaultnumberDefault zoom level
stepnumberZoom step increment

ElementPaletteItem

Properties

PropertyTypeRequiredDescription
typestringComponent type (e.g. "element:button", "element:text")
labelstringDisplay label in palette
iconstringoptionalIcon name for palette display
categoryEnum<'content' | 'interactive' | 'data' | 'layout'>Palette category grouping
defaultWidthintegerDefault width in grid columns
defaultHeightintegerDefault height in grid rows

InterfaceBuilderConfig

Properties

PropertyTypeRequiredDescription
snapObjectoptionalCanvas snap settings
zoomObjectoptionalCanvas zoom settings
paletteObject[]optionalCustom element palette (defaults to all registered elements)
showLayerPanelbooleanShow layer ordering panel
showPropertyPanelbooleanShow property inspector panel
undoLimitintegerMaximum undo history steps

PageBuilderConfig

Properties

PropertyTypeRequiredDescription
snapObjectoptionalCanvas snap settings
zoomObjectoptionalCanvas zoom settings
paletteObject[]optionalCustom element palette (defaults to all registered elements)
showLayerPanelbooleanShow layer ordering panel
showPropertyPanelbooleanShow property inspector panel
undoLimitintegerMaximum undo history steps

On this page