Skip to main content

Atom Components

Small, reusable UI primitives. Used internally by layout and editor components, but exported for custom UI composition.

FormItemLabel

A form field label with an optional "Required" badge.

<FormItemLabel label="Email" required={true} />
PropTypeDescription
labelstringLabel text
requiredbooleanShow the Required badge

FormItemDisplay

A layout wrapper that stacks a label above a form control.

<FormItemDisplay>
<FormItemLabel label="Email" required />
<input type="text" name="email" />
</FormItemDisplay>

Purely a <div> layout wrapper — applies flex column styling.


Tag

A small badge. Used for the "Required" indicator.

<Tag>Required</Tag>

Renders an inline pill-shaped badge with warning colors.


Option

A single option row — two text inputs (value + title) and a delete button. Used by EditorOptions.

<Option
id="opt-1"
value="admin"
title="Administrator"
onChange={({ id, event, name }) => {}}
onDelete={({ id }) => {}}
/>
PropTypeDescription
idstringOption ID
valuestringOption value (submitted)
titlestringOption display title
onChange(payload: OnChangePayload) => voidCalled when value or title changes
onDelete(payload: { id: string }) => voidCalled when delete is clicked

ToolboxItem

A single card in the toolbox palette. Shows an icon and label.

<ToolboxItem icon={FaFont} name="Text input" style={{ width: 'initial' }} />
PropTypeDescription
iconComponentTypeIcon component to render
namestringDisplay name
styleCSSPropertiesOptional style overrides

ComponentEditActions

Edit and delete action buttons that appear on hover over a form item on the canvas.

<ComponentEditActions id={item.id} onEdit={handleEdit} onDelete={handleDelete} />
PropTypeDescription
idstringForm item ID (required, used for callbacks)
onEdit(payload: { id: string }) => voidEdit callback
onDelete(payload: { id: string }) => voidDelete callback