Slot types
Every slot type a schema may declare, and when to pick each.
A slot’s type picks the shape of the value your renderer receives. The set is closed: adding to it is a kit release, not a change you can make in a template.
SectionProps hands every value to the renderer already typed, so no cast is needed at the point of use.
| type | value your renderer receives | pick it when |
|---|---|---|
text |
string — an unfilled optional arrives as the blank "" |
one editable line or paragraph — set size to short, medium or long |
number |
number (number | null if optional) |
a numeric fact, with an optional named format |
select |
string — an unfilled optional arrives as the blank "" |
a closed set of choices the user picks from, written out as values on the slot |
image |
ImageValue (ImageValue | null if optional) |
one framed photo — add crop or frame to shape it |
list |
SlotValue<element>[] for a single item (string[] for a text or select element); rows typed from fields for a record item |
anything multi-item — declare the item as a single primitive (list.of(text.short(…))) or a record of primitives (list.of({ … })); add unique: true on a select element to forbid two rows picking the same option |
poi |
PoiRow (PoiRow | null if optional) |
one platform-built place, standalone or as a list item — most of the row is optional, so render every field conditionally |
url |
string — an unfilled optional arrives as the blank "" |
a link the user edits in a URL field — add accepts to restrict it to a link kind or a single provider |
video |
VideoValue (VideoValue | null if optional) |
one video — add frame or playback; sources admits a third-party player link, upload-only by default |
tour |
TourValue (TourValue | null if optional) |
one 3D walkthrough the user picks from the property’s tours — frame is the only option it takes; render it with Slot.Tour for the embed, Slot.Image for its thumbnail, or both |
document |
DocumentValue (DocumentValue | null if optional) |
one file the platform hosts and the visitor opens or downloads — a brochure, a floor-plan pdf, a fee schedule; use url with accepts: "file" instead when the file is hosted somewhere else |