Skip to content

v7.0.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@luanfreitasdev luanfreitasdev released this 10 Aug 18:00
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 a ThemeBuilder. 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.pgActions is gone).
  • Modular Plugin System — inline editing (Editable), toggles (Toggleable), date picker (Flatpickr), Export and the new Filter Builder are now isolated plugins, registered via the PowerGrid facade.
  • 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 Zonespg-tbody, pg-pagination and pg-filters fragments (via power-components/partials) update only the affected region for a big performance boost.
  • Multi-sort with state persistence.
  • State persistence driverscookies (default), session or cache.
  • Performance — new RowRenderer/CellRenderer, cached plugin CSS/JS and theme tokens, memoized column/filter resolution.
  • Smarter scaffoldingpowergrid:create can 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