SectionHeaderComponent
The header the host puts above every section — its title and who declared it (wireframe 1a of greenhouse decisions/0203: «Título · declarada por <Plugin>»; decided for every section, the panel's own included, in decisions/0210). The attribution is the catalogue's fact, not the section's: `SectionCatalogue::declaredBy()` names the plugin class whose `adminSections()` returned it, and the shell hands that name here as `declaredBy`. A section never says who declared it — the host does, so a guest cannot borrow another plugin's name; and it cannot repaint this header either, because the {@see ComponentBook} refuses a section that brings its own definition under `admin-section-header` (or any other name the panel registers itself). No actions: a header shows; the section below acts.
SectionHeaderComponent::contract()
public static function contract(): Milpa\Live\ValueObjects\ComponentContractThe contract: the section's title as the shell resolved it, and the declaring plugin's class (`''` when unknown).
SectionHeaderComponent::mount()
public function mount(array $props, Milpa\Live\ValueObjects\ComponentContext $context): Milpa\Live\ValueObjects\StateSnapshotMount: the title and the declaring class, as strings — anything else is empty, never invented.
Parameters
| Name | Type | Description |
|---|---|---|
| $props | array | |
| $context | Milpa\Live\ValueObjects\ComponentContext |
SectionHeaderComponent::handle()
public function handle(Milpa\Live\ValueObjects\InteractionRequest $request): Milpa\Live\ValueObjects\InteractionResultNo action is declared: the header shows, the section below acts.
Parameters
| Name | Type | Description |
|---|---|---|
| $request | Milpa\Live\ValueObjects\InteractionRequest |