Skip to content
HomePagesHomePages template kit

BoundSlotValue

The value shape a binding holds after bind-time normalization: `SlotValue` for every kind except a RECORD list, whose bound rows are always the declared-fields row (`RowValue`) — row normalization keeps the editor-stamped `id` plus each DECLARED field and drops everything else, so a whole-row-baked slot's projection-only fields (which `SlotValue` types on the raw slot value) never survive into a binding.

The value shape a binding holds after bind-time normalization: SlotValue for every kind except a RECORD list, whose bound rows are always the declared-fields row (RowValue) — row normalization keeps the editor-stamped id plus each DECLARED field and drops everything else, so a whole-row-baked slot’s projection-only fields (which SlotValue types on the raw slot value) never survive into a binding. Read those off the raw prop, never off a binding’s value.

Import from @homepages/template-kit.

export type BoundSlotValue<D> = D extends {
type: "list";
fields: infer I;
} ? RowValue<I>[] : SlotValue<D>;