Examples
Select filters a table
Choosing an environment in the header select narrows the deployment table below it without a reload.
Preview
Deployments
All environments
Production
Preview
| Deployment | Status | Finished |
|---|---|---|
|
storefront
|
Ready
|
June 26, 10:41
|
|
api
|
Ready
|
June 26, 09:58
|
|
docs
|
Failed
|
June 25, 22:14
|
HTML
<bs:bsui-stack direction="column" gap="3" align="stretch">
<bs:bsui-stack direction="row" gap="3" align="center" justify="space-between">
<bs:bsui-text content="Deployments" variant="title" tag="h3" />
<bs:bsui-select name="environment" defaultValue="production" placeholder="Environment">
<bs:bsui-select-trigger />
<bs:bsui-select-popup>
<bs:bsui-select-option value="all" label="All environments" />
<bs:bsui-select-option value="production" label="Production" />
<bs:bsui-select-option value="preview" label="Preview" />
</bs:bsui-select-popup>
</bs:bsui-select>
</bs:bsui-stack>
<bs:bsui-table sortable="false">
<bs:bsui-table-header>
<bs:bsui-table-header-cell columnId="deployment" label="Deployment" sortable="false" />
<bs:bsui-table-header-cell columnId="status" label="Status" sortable="false" />
<bs:bsui-table-header-cell columnId="finished" label="Finished" sortable="false" />
</bs:bsui-table-header>
<bs:bsui-table-body>
<bs:bsui-table-row>
<bs:bsui-table-cell>storefront</bs:bsui-table-cell>
<bs:bsui-table-cell>
<bs:bsui-badge label="Ready" variant="success" />
</bs:bsui-table-cell>
<bs:bsui-table-cell>June 26, 10:41</bs:bsui-table-cell>
</bs:bsui-table-row>
<bs:bsui-table-row>
<bs:bsui-table-cell>api</bs:bsui-table-cell>
<bs:bsui-table-cell>
<bs:bsui-badge label="Ready" variant="success" />
</bs:bsui-table-cell>
<bs:bsui-table-cell>June 26, 09:58</bs:bsui-table-cell>
</bs:bsui-table-row>
<bs:bsui-table-row>
<bs:bsui-table-cell>docs</bs:bsui-table-cell>
<bs:bsui-table-cell>
<bs:bsui-badge label="Failed" variant="destructive" />
</bs:bsui-table-cell>
<bs:bsui-table-cell>June 25, 22:14</bs:bsui-table-cell>
</bs:bsui-table-row>
</bs:bsui-table-body>
</bs:bsui-table>
</bs:bsui-stack>How it works
The select writes its committed value into a context shared with the table region, and each row derives its visibility from that value through directives. The store also keeps a visible-count string that a live region reads out after every change.
Every behaviour on this page is the WordPress Interactivity API: each component registers its own store, seeds its state in a server rendered context, and wires events with directives in the markup above. There is no page specific JavaScript.