v7.0.0-beta.1
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
⚡ PowerGrid 7.0.0-beta.1
This is the first beta release of PowerGrid 7.x — a major architectural rewrite focused on simplicity, performance, and a native skeleton. It drops legacy dependencies, introduces a modular plugin system, and fully separates HTML structure from visual styles.
⚠️ Beta disclaimer: this is a pre-release. APIs may change before the final 7.0.0 stable. Always read the UPGRADE.md guide before migrating.
🚀 Highlights
- New theme architecture — all themes (Tailwind, DaisyUI, Flux) rebuilt around a single fluent
struct()method returning aThemeBuilder. HTML is fully separated from visual styles; no more theme conditionals in Blade. - Server-side Actions — actions are rendered server-side as Blade components via
renderActions(). No more JS processing or browser caches (window.pgActionsis gone). - Modular Plugin System — inline editing (
Editable), toggles (Toggleable), date picker (Flatpickr),Exportand the new Filter Builder are now isolated plugins, registered via thePowerGridfacade. - PowerGrid Lite — a set of lightweight, theme-driven Blade components (
<x-pg-table>,<x-pg-row>,<x-pg-cell>, ...) with optional traits (WithSorting,WithSearch,WithCheckbox,WithPersist) for simple tables without the full engine. - Livewire DOM isolation / Hot Zones —
pg-tbody,pg-paginationandpg-filtersfragments (viapower-components/partials) update only the affected region for a big performance boost. - Multi-sort with state persistence.
- State persistence drivers —
cookies(default),sessionorcache. - Performance — new
RowRenderer/CellRenderer, cached plugin CSS/JS and theme tokens, memoized column/filter resolution. - Smarter scaffolding —
powergrid:createcan now source columns directly from the DB table. - Removed legacy baggage — Bootstrap 5 theme, the "load more" lazy loading API (
PowerGrid::lazy(),LazyManager) with no direct replacement (use standard pagination), Pulse integration, and third-party select CDN fallbacks.
Requirements
- PHP 8.3+
- Laravel 12 / 13
- Livewire 4.0+
- Tailwind CSS 4.x
Upgrade Guide (tmp)
See the full migration guide: UPGRADE.md
What's Changed
Features
- feat: add multiSort functionality with state persistence for sorting
- feat: implement max per page limit and add Locked attributes for state management
- feat: introduce column source selection for auto-generated columns
- feat: port column source improvements from 6.x
- feat: optimize action rendering with CellRenderer and server-side attribute management
- feat: add RowRenderer for enhanced table row rendering and detail management
- feat: implement RowRenderer for optimized cell rendering in table rows
- feat: refactor RowRenderer constructor for improved dependency injection
- feat: implement toggleable plugin with global asset rendering and improved action rule caching
- feat: refactor Alpine.js components for improved state management and event handling
- feat: enhance column and filter handling with memoization and validation
- Implement Filter Builder plugin with validation and UI components
- Add filter persistence functionality to FilterBuilder
- Add validation and before-apply hooks to FilterBuilder for enhanced query control
- Add SelectColumns pipeline to prune hidden and searchable columns from queries
- Add Flux header and update layout for improved structure and styling
- Refactor pagination components in Flux and footer for improved layout and functionality
- Enhance PowerGrid Lite components with responsive design and new features
- Add responsive table body and toggle icon components
- Enhance searchableRaw macro to support dynamic SQL generation with closures
- Enhance toggleable component with theme-driven colors and add renderHeaderActions method for improved header button rendering
- Add new Blade components and enhance table theming for improved UI
- Add partials
- Add editable and toggleable plugins with corresponding styles and scripts
- Add support for configurable disk and directory in batch export
- Update default export format to openspout_v5 and enhance ASCII art rendering with gradient colors
- Refactor export plugin structure and enhance export functionality with progress tracking
- Refactor summaries to support batched queries and custom closures
- Normalize event names by converting table names to lowercase in detail toggle functionality
Fixes
- fix: ensure safe access to component properties and improve type handling in CreateCommand, HasActions, and ToggleablePlugin
- Handle null values for radio and checkbox attributes in row template
- Improve TomSelect integration by adding error handling for missing library and update UPGRADE.md for optional third-party select libraries
- Fix pagination macro to remove unnecessary PHPStan ignore directive
- Remove unnecessary lazy loading check in ModelProcessor for cleaner data transformation
Refactors & Performance
- Refactor action rendering to use server-side Blade components and remove obsolete JavaScript logic
- Optimize plugin rendering by caching JavaScript and CSS, and enhance token resolution with caching in ThemeManager
- Refactor caching logic in PowerGridComponent for improved performance
- Refactor export batch property to use computed attribute for improved performance
- Refactor filter handling to normalize filter values and improve multi-select behavior
- Refactor parameter handling in Listeners and update SQL generation in Macros for consistency
- Refactor event listeners and enhance plugin handling in PowerGridComponent
- Refactor ManageRow and table blade to use event dispatching for row templates
- Refactor enabled filters rendering to use wire partials and improve layout consistency
- Refactor filter builder UI components to use Flux elements for consistency
- Refactor filter component to improve filter retrieval logic and enhance data binding
- Refactor row rendering logic for improved readability and consistency
- Refactor table expansion logic to improve element visibility and enhance responsiveness
- Refactor Editable and Toggleable plugins to use pluginData for configuration and enhance rule management
- Refactor date picker view references to use Flatpickr for improved consistency
- Refactor export and toggle columns components for improved structure and consistency
- Refactor table theme classes for consistency across components
- Refactor UI components to use consistent color themes
- Refactor layout containers to improve spacing consistency
- Refactor Tailwind component styles for improved layout and responsiveness
- Refactor DaisyUI table rows for improved striped and non-striped styling
- Refactor DataSource and empty state terminology for consistency
- Refactor reflection cache access in Listeners to use self instead of static
- Refactor parameter types in plugin methods to use mixed type hinting
- Normalize filter keys and improve type handling across various components
- Refactor: improve handling of nested fields and enhance filter validation
- Refactor FilterBuilderValidator constants to use array syntax for consistency
- Refactor dropdown components
- Refactor import statement for PowerGridComponent for consistency
- Remove unused stdClass import from Sorting trait
Docs & Dev Experience
- Add PowerGrid 7.x Upgrade Guide with migration steps and architectural changes
- Add new skills and guidelines for PowerGrid 7.x AI agents, including plugin creation and architectural principles
- Enhance AGENTS.md with detailed skills documentation and usage protocols
- docs: update references and instructions for AI-assisted development and theme migration
- Update SKILL.md to reflect fluent builder pattern in v7 theme migration
Dependencies & Tooling
- Update dependencies for Laravel 12 and 13 compatibility in configuration files
- Update composer.json and UPGRADE.md for PHP 8.4 and Laravel 12 compatibility
- Update composer.json and UPGRADE.md for Laravel 12 support and dependency adjustments
- Update default export format to openspout_v5
- Update openspout dependency to version 5.0 in postgres.yml
- chore: update pestphp version constraint to support 5.0
- feat: update MySQL service configuration to use version 8.0 and enhance health check command
- Update slim-select CDN links to version 2.9.1 for improved stability
- Update dependency stability and CI environment versions
Tests
- Add tests for boolean, select, and number filters in PowerGridComponent
- test: port column source tests from 6.x (SchemaColumnsTest, BuildStubVarsTest, AskColumnSourceTest, ColumnSourceTest, PowerGridMakerTest)
- Refactor SelectColumnsTest to normalize SQL queries and update column references
- feat: update RulesTest to use class() syntax for anonymous classes
- feat: update RowRenderParityTest to use class() syntax for anonymous classes
- test: remove obsolete StubColumnBuilderTest (replaced by BuildStubVars in the new architecture)
- chore: remove unused helper functions (expectInputText, filterInputText, filterNumber, filterBoolean, getLaravelDir)
- chore: remove unused SQL Server test configuration
Housekeeping
- chore: remove trailing whitespace from multiple files
- chore: remove redundant columnSource property from PowerGridComponentMaker
- refactor: remove unnecessary docblock comments in HasActions.php
- Remove unused repository paths from composer.json
- Fix typo in composer.json suggestion for openspout
- Fix whitespace in composer.json for openspout suggestion
- chore: update minimum stability to dev in composer.json
- Remove openspout dependency version constraint from composer.json
Full Changelog: v6.11.0...v7.0.0-beta.1