import type {TemplateResult} from 'lit'; /** A section placed on a page. */ export interface PageSection { id: string; type: string; /** Overrides the type label when set (per-instance rename). */ label?: string; /** Section content, keyed by field name (the inspector's `name` attributes). */ data: Record; /** Slots per row for a container whose type allows a choice; the type's default applies otherwise. */ columns?: number; /** Slot contents for container sections, sized to {@link slotCount}. Empty slots are null. */ children?: (PageSection | null)[]; } /** The complete serialisable state of a page. Order = render order. */ export interface PageState { sections: PageSection[]; } /** * Describes a kind of section that can be placed on a page. Declared via * `