Skip to content

v4.0.0-beta.5

Pre-release
Pre-release

Choose a tag to compare

@AsmitNepali AsmitNepali released this 30 Jul 17:26

Everything on main since v4.0.0-beta.4.

Added

  • Unpin a column by clicking the pin in its header. Pinned headers painted a pin icon through a CSS ::before that cannot take a click, so removing a pin meant opening the Pin columns panel and applying a new selection. A column the user pinned now carries a real button in that spot which calls toggleColumnSticky() directly, and the change persists like any other. A ->sticky() column keeps the painted pin and gains no button — toggleColumnSticky() refuses to remove developer defaults, so a control there would do nothing.
Column Pin icon Click to unpin
->sticky() Yes No — pinned for everyone
Pinned by the user Yes Yes
Not pinned No

Fixed

  • Pages using the trait crashed when formatted with Laravel Pint. bootedHasResizableColumn() read getTable() to seed the ->sticky() columns, but Livewire boots traits in declaration order and Pint's ordered_traits rule sorts HasResizableColumn above InteractsWithTable. The table did not exist yet, so the page died with Typed property ...::$table must not be accessed before initialization. Seeding now happens in the render hook, and persistBlob() merges the developer-declared sticky columns on write, since an action can persist before that hook runs. Either trait order works.
  • ->stickableColumns() rendered nothing on a table with no filters and no toggleable columns. The "Pin columns" trigger is injected at the column-manager position, which filament/tables wraps in @if ($hasFiltersTrigger || $hasColumnManager). With neither, the panel was dropped without a word. It now falls back to the search position, which sits outside that condition.
  • Stickable tables inherit the global preserveOnDB() setting.
  • Sticky table headers stay below Filament's topbar menus.
  • Dark-mode resize handle bar is dimmed on table headers.
  • Resize handles exclude the pin zone; dist CSS is built.

Added (internal)

  • StickyPanel::rendersColumnManagerTrigger() — mirrors Filament's toolbar condition, used to pick the render position.

Documentation

  • Sticky columns guide covers unpinning from the header and the fallback panel position.

Tests: 46 passing.

Full changelog: v4.0.0-beta.4...v4.0.0-beta.5