Form controls

Declarative Plates form controls. Callers pass escaped props; components never read the request. Native semantics stay the source of truth. JavaScript only mirrors the current selection.

Current selection

Topics: none

Density: none

Sort: none

Composite filter group

kind maps through an internal allowlist. Callers cannot pass a template path.

Filter group
Topics

Constants-backed checkbox group. Unknown query values are dropped.

Density
Reset

Primitive controls

Native type=search. Not wired to this page query.

The select element is the only list. No listbox clone.

label
Primitive checkbox group
layout
Primitive radio group
comfortable

Insert examples

$this->insert('component::form/select', [
    'id' => 'sort',
    'name' => 'sort',
    'label' => 'Sort',
    'selected' => $sort,
    'options' => [['value' => 'label', 'label' => 'Label']],
]);
$this->insert('component::form/filter-group', [
    'action' => '/showcase/form-controls',
    'fields' => [
        ['kind' => 'search', 'id' => 'q', 'name' => 'q', 'label' => 'Search'],
        ['kind' => 'select', 'id' => 'sort', 'name' => 'sort', 'label' => 'Sort', 'options' => $options],
    ],
]);