Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Tables Laravel Package

beartropy/tables

Flexible Livewire table component for the TALL stack (Tailwind, Alpine, Laravel, Livewire). Provides essentials like searching, sorting, filters, bulk actions, and column toggling to build customizable data tables quickly.

View on GitHub
Deep Wiki
Context7
v2.9.13

Fixed

  • Cache: Object cell values (e.g. Carbon dates, backed enums, value objects) are now deep-normalized to scalars/arrays before caching, so the cache never stores objects. Previously v2.9.12 only flattened the top-level container, leaving object cell values to come back as __PHP_Incomplete_Class under Laravel 13's hardened cache unserialization — which broke rendering with htmlspecialchars(): Argument #1 ($string) must be of type string, __PHP_Incomplete_Class given. Stringable values (Carbon, etc.) are cached as their string form, preserving rendered output.
  • Cache: getCachedData() now self-heals — a non-array cache hit (a legacy cached TableCollection or an incomplete-class artifact from a pre-upgrade entry) is discarded and rebuilt from source instead of rendering garbage.
v2.9.12

Fixed

  • Cache: Table data is now cached as a plain array of rows instead of the TableCollection object, and re-wrapped into a TableCollection on read. This keeps the cache compatible with Laravel 13's hardened unserialization (cache.serializable_classes) without consumers having to allow-list TableCollection. Legacy cached collections are tolerated for the remaining TTL window after upgrading.
v2.9.11

Changed

  • Dev: Upgrade Pest to v4 (pestphp/pest: ^4.0, pestphp/pest-plugin-laravel: ^4.0).
v2.9.10

Changed

  • Dependencies: Allow Livewire 4 (livewire/livewire: ^3.7|^4.0).
  • Dev: Test against Laravel 13 via Orchestra Testbench 11 (orchestra/testbench: ^9.0|^10.0|^11.0).
v2.9.9

Fixed

  • GenericExport: Export headers now use column display labels (e.g., "Rol funcional") instead of raw data keys (e.g., "rol_funcional"). Works automatically for both Eloquent and array/collection tables — no changes needed in existing apps.
  • GenericExport: Internal metadata keys (_original, _disabled, _hidden, _card_title) no longer leak into exported data. Previously only _original was stripped.
  • exportToClipboard: Clipboard export now uses column labels as headers and filters out internal metadata keys, matching the GenericExport fix.

Added

  • TableCollection: New Collection subclass that carries column label metadata from processCollection() through to GenericExport, enabling automatic label resolution without requiring changes to existing export methods.
v2.9.8

Fixed

  • Expanded Rows: Use key() helper function instead of key: named argument in [@livewire](https://github.com/livewire)() directive for inline expanded row components. The named argument syntax isn't handled by Livewire's Blade compiler regex, causing a closure parameter error when expanding task rows.
v2.9.7

Fixed

  • Column: Declare isHtml as a class property (public $isHtml = false) so property_exists() returns true on PHP 8.2+. Previously, isHtml was set dynamically in the toHtml() trait method, causing the raw-HTML branch in Blade templates to never trigger.
v2.9.6

Added

  • Column: secondaryHeader(callable $callback) method to display a secondary header row below the main header with computed content (e.g., subtotals, averages). The callback receives the current page's rows as a Collection and supports HTML output.

Fixed

  • Tests: Updated ViewTest default button variant assertion from soft to glass to match v2.9.5 change.
v2.9.5

Added

  • BeartropyTable: Customizable base query via overridable query() method — scope table data by tenant, permissions, or any custom condition without global scopes.
  • BeartropyTable: Internal newQuery() wrapper that applies $with eager loading automatically on top of query().

Changed

  • View: Default button variant changed from soft to glass.
v2.9.4

Changed

  • Buttons: Default button variant changed from outline to soft (light tinted background with colored text) for a consistent, subtle look across all header buttons.
  • PerPage: Per-page selector now uses the shared $yat_button_variant instead of a hardcoded outline attribute, ensuring all buttons match.

Added

  • Tests: Added 16 tests covering stdClass data support (unit + feature).
v2.9.3

Fixed

  • Data: stdClass rows now use ArrayObject instead of plain arrays, preserving both $row->key and $row['key'] access in user callbacks (fixes "Attempt to read property on array" regression from v2.9.2).

Changed

  • Docs: Added stdClass data source documentation and examples across LLM reference, user reference, AI guide, and basic-tables examples.
v2.9.2

Fixed

  • Data: Normalize stdClass objects to arrays in processCollection() and addRowToTable(), preventing "Cannot use object of type stdClass as array" errors when data() returns stdClass objects (e.g. from json_decode() or API responses).
  • Theming: Fix setTheme() not propagating to header components.
v2.9.1

Changed

  • BeartropyTable: Renamed base class from YATBaseTable to BeartropyTable. The old name continues to work via class_alias — no changes needed in existing user code.
  • BeartropyTableServiceProvider: Renamed service provider from YATProvider to BeartropyTableServiceProvider. The old name extends the new one for backward compatibility.
  • Stubs: make:btable now generates extends BeartropyTable instead of extends YATBaseTable.
  • Docs: Comprehensive documentation overhaul — all settings methods, data access methods, view slots, theming, state persistence, spinner, cache, row manipulation, sort, bulk, and export now fully documented across LLM reference, user reference, and AI guide.
  • Docs: Documentation updated to reference BeartropyTable throughout. Doc files renamed from yat-base-table to bear-table.
  • Skills: bt-tables-setup updated with correct artisan command (make:btable) and BeartropyTable references.
  • Skills: bt-tables-docs-maintenance updated with correct service provider path.
  • MCP: ComponentDocs schema example updated from yat-base-table to bear-table.
v2.9.0

Added

  • YATBaseTable: setComponentSize() method to uniformly resize all header UI components.
v2.8.2

Changed

  • Search: Use native icon-start prop for search input magnifying glass.
  • Pagination: Add cursor-pointer to pagination buttons.
  • Pagination: Reset page when changing per-page option.

Fixed

  • FilterSelect: Fix sending option labels instead of IDs.
  • FilterSelect: Fix integer-keyed options not filtering correctly.
  • ToggleColumn: Fix undefined property after Livewire serialization.
v2.8.1

Fixed

  • YATBaseTable: Removed mixed type from $model property to restore child class compatibility. Typed parent properties cannot be overridden without matching the type exactly in PHP 8.
v2.8.0

Added

  • MCP Tools: Three MCP tools (ComponentDocs, ListComponents, ProjectContext) for Laravel Boost integration.
  • Skills: Setup skill (bt-tables-setup) and docs maintenance skill for AI assistants.
  • Docs: LLM reference docs and user docs for all 12 components (docs/llms/, docs/components/).
  • Docs: AI assistant documentation with universal guide, Cursor rules, and code examples (docs/ai-assistants/).
  • Docs: Doc templates for LLM and user documentation (docs/llms/_template.md, docs/components/_template.md).
  • Tests: Comprehensive test suite expanded from 39 to 243 tests covering all column types, filter types, traits, bulk actions, inline editing, filters integration, row manipulation, and export.
  • Tests: MCP integrity tests ensuring documentation stays in sync with code.
  • Translations: 8 missing Spanish translation keys added.

Changed

  • Code Quality: Type hints added to 60 properties across all traits and classes.
  • Code Quality: PHPDoc blocks added or corrected across 68 issues in all src/ files.
  • Code Quality: Magic number replaced with PHP_INT_MAX constant.
  • Security: Input validation and null safety improvements across multiple traits.
  • Cleanup: Dead code, duplicate PHPDoc blocks, and Spanish comments removed.

Fixed

  • Migration: Corrected down() method to properly reverse migration.
  • Pagination: Fixed typo in pagination property name.
  • Null Safety: Added null checks to prevent errors with empty data sets.
v2.5.0

[2.5.0] - 2026-01-02

Added

  • Comprehensive test suite using PestPHP:
    • Unit Tests: Column logic (instantiation, unique keys, modifiers) and Options logic.
    • Feature Tests: Table rendering, pagination (per page, navigation), global search, and column sorting.
  • Test infrastructure: TestCase setup with SQLite in-memory database and Pest configuration.
  • Structural improvements in yat-table.blade.php:
    • Better handling of row expansion and mobile layout.
    • Improved empty search results display.
    • Enhanced data-attribute handling for accessibility and styling.

Changed

  • Improved project documentation structure and meta-information.
  • Refactored yat-table.blade.php for better readability and performance.
  • Updated YATableComponent.stub with improved code styling and type hints.
v2.4.4
v2.4.3
v2.3.11
v2.0.1
v2.0.0
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views