Skip to content

Partials and Hot Zones โ€‹

PowerGrid uses power-components/partials to isolate DOM updates. A sort, search, filter, page change, or tab switch renders only the affected fragments (Hot Zones) server-side, and the browser morphs only those elements instead of the whole Livewire component.

If partials() is not available, PowerGrid falls back to a full-component render. There is no enable / disable flag.

Hot Zones โ€‹

Names include the table's $tableName.

Hot ZonePartial nameUpdated when
Table headpg-thead-{tableName}Sort (header indicators)
Table bodypg-tbody-{tableName}Search, sort, filter, paginate, per-page change
Paginationpg-pagination-{tableName}Search, sort, filter, paginate, per-page change
Filter fieldspg-filter-fields-{tableName}Filter panel contents (dropdown / flyout mode)
Filter triggerpg-filter-trigger-{tableName}Filter button / badge in flyout mode
Enabled filterspg-enabled-filters-{tableName}Active filter pills
Tabspg-tabs-{tableName}Tab change, search, filter (badge counts)

Zone Update Map โ€‹

User actionZones updated
Searchtbody + pagination + tabs
Sortthead + tbody + pagination
Filtertbody + pagination + filter fields / trigger + enabled filters + tabs
Paginatetbody + pagination
Per-page changetbody + pagination
Tab changetabs + tbody + pagination

How Partials Preserve User Input โ€‹

The search input uses wire:partial.ignore="pg-search-{tableName}" so it is not overwritten during a partial morph. Cursor position and typed text stay intact when other zones update.

Inline filters use wire:partial.ignore="pg-inline-filters-{tableName}" for the same reason.

Requirements โ€‹

power-components/partials is a Composer dependency of PowerGrid. No extra configuration is needed beyond the installation guide.

INFO

Partials require Livewire 4+ and work with all PowerGrid themes.

Created By Luan Freitas and @DanSysAnalyst