Skip to main content

Section Definitions

Section definitions are the component library — reusable types that templates reference by type.

What lives in a definition

A section definition combines:

  • A type identifier (e.g. HeroSection) that templates reference.
  • A list of settings — typed inputs the admin UI renders (text, color, number, select, etc.).
  • A list of block schemas — child component types the section may contain.
  • Optional presets — pre-configured combinations of settings + blocks for quick creation.
  • A list of target platforms (any combination of WEB, MOBILE, TABLET; ["ALL"] matches all).
  • A lifecycle status: ACTIVE, DRAFT, DEPRECATED.

Setting types

TypeDescriptionExample use
TEXTSingle-line textTitle, label
TEXTAREAMulti-line textDescription
RICHTEXTHTML contentBody text
NUMBERInteger/decimalColumn count
RANGESliderOpacity
CHECKBOXBoolean toggleShow/hide
SELECTDropdown (uses options)Style variant
COLORColor pickerBackground
IMAGEImage URLBanner image
VIDEOVideo URLBackground video
URLLink URLCTA link
HTMLRaw HTMLEmbed code

Each setting can carry constraints (min, max, step, unit, options, placeholder, info, defaultValue) — applicability depends on the type.

Lifecycle status

StatusMeaning
ACTIVEAvailable in the template editor; rendered at runtime.
DRAFTHidden from the picker; safe place to iterate.
DEPRECATEDStill renders existing templates, but hidden from new template creation.

How rendering composes settings

When a template references a section by type, the renderer merges layers:

  1. Section definition setting defaultValues.
  2. Template-level overrides on the section instance.
  3. Per-block defaults from the block schema, then per-block-instance overrides.

Disabled sections and blocks are dropped before rendering. See Templates for the merge details.

Schema reference

Field-level shape (request bodies, response bodies, enums) is documented in the OpenAPI spec — that is the source of truth and stays in sync with the Java model.

The pms.json spec is regenerated from the running app via npm run gen-specs (in docs/).

Endpoints

The full request/response details (including examples) are auto-rendered under the PMS API → SDUI Section Definitions sidebar group, generated from docs/openapi/pms.json.