Changelog
Recent changes in Beartropy packages.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[v2.9.5] - 2026-02-19
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$witheager loading automatically on top ofquery().
Changed
- View: Default button variant changed from
softtoglass.
[v2.9.4] - 2026-02-16
Changed
- Buttons: Default button variant changed from
outlinetosoft(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_variantinstead of a hardcodedoutlineattribute, ensuring all buttons match.
Added
- Tests: Added 16 tests covering stdClass data support (unit + feature).
[v2.9.3] - 2026-02-16
Fixed
- Data: stdClass rows now use
ArrayObjectinstead of plain arrays, preserving both$row->keyand$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] - 2026-02-16
Fixed
- Data: Normalize stdClass objects to arrays in
processCollection()andaddRowToTable(), preventing "Cannot use object of type stdClass as array" errors whendata()returns stdClass objects (e.g. fromjson_decode()or API responses). - Theming: Fix
setTheme()not propagating to header components.
[v2.9.1] - 2026-02-16
Changed
- BeartropyTable: Renamed base class from
YATBaseTabletoBeartropyTable. The old name continues to work viaclass_alias— no changes needed in existing user code. - BeartropyTableServiceProvider: Renamed service provider from
YATProvidertoBeartropyTableServiceProvider. The old name extends the new one for backward compatibility. - Stubs:
make:btablenow generatesextends BeartropyTableinstead ofextends 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
BeartropyTablethroughout. Doc files renamed fromyat-base-tabletobear-table. - Skills:
bt-tables-setupupdated with correct artisan command (make:btable) andBeartropyTablereferences. - Skills:
bt-tables-docs-maintenanceupdated with correct service provider path. - MCP:
ComponentDocsschema example updated fromyat-base-tabletobear-table.
[v2.9.0] - 2026-02-16
Added
- YATBaseTable:
setComponentSize()method to uniformly resize all header UI components.
[v2.8.2] - 2026-02-16
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] - 2026-02-16
Fixed
- YATBaseTable: Removed
mixedtype from$modelproperty to restore child class compatibility. Typed parent properties cannot be overridden without matching the type exactly in PHP 8.
[v2.8.0] - 2026-02-14
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.
[2.7.1] - 2026-01-18
Fixed
- Fixed filters with custom
queryCallbackfailing when no matching database column exists. - Virtual filters (those using
->query()without a real column) now work correctly by generating a virtual key instead of requiring a column match.
[2.7.0] - 2026-01-16
Added
- Added
triggerCardInfoModal(bool)method toColumnclass to optionally disable opening the info modal when clicking the card title on mobile. - Support for closure callbacks in
cardTitle()method to allow dynamic content generation for mobile card titles.
Changed
- Refactored
Datatrait andColumnserialization logic to support passing closures to views, enabling more dynamic UI definitions.
[2.6.3] - 2026-01-16
Added
- Added
centered()method toColumnclass for easy content and header alignment.
Fixed
- Fixed bulk column width issue where it expanded unnecessarily in tables with few columns.
[2.6.2] - 2026-01-16
Fixed
- Included styling fixes missed in v2.6.1 (row opacity adjustments).
[2.6.1] - 2026-01-16
Changed
- Improved table row visual hierarchy:
- Reduced hover background opacity for clearer content visibility.
- Subtle adjustment to even row background opacity for better contrast.
[2.6.0] - 2026-01-07
Added
- New
DateColumnclass for displaying formatted date values:inputFormat(string)- specify expected input date format.outputFormat(string)- define display format (default:Y-m-d).emptyValue(string)- fallback value for null/empty dates.
- Date formatting logic in
Data::transformRow()for automatic date parsing and formatting. - Unit tests for
DateColumnclass.
[2.5.0] - 2026-01-02
Added
- Comprehensive test suite using PestPHP:
- Unit Tests:
Columnlogic (instantiation, unique keys, modifiers) andOptionslogic. - Feature Tests: Table rendering, pagination (per page, navigation), global search, and column sorting.
- Unit Tests:
- Test infrastructure:
TestCasesetup with SQLite in-memory database andPestconfiguration. - 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.phpfor better readability and performance. - Updated
YATableComponent.stubwith improved code styling and type hints.
[2.4.4] - 2025-12-31
Fixed
- Added docs
[2.4.3] - 2025-12-30
Fixed
- Fixed column alignment when using
pushLeft()andpushRight()by adding flex utilities to header wrappers.
Changed
- Improved code styling in
Columnclass (parameter type hints and return types).
[2.4.1] - 2025-12-19
Fixed
- Fixed inline editing:
- Fixed display showing ID instead of label after save.
- Fixed initial value mismatch (display vs ID) for relationship fields.
- Fixed empty state defaulting to first option (added placeholder).
- Fixed
Undefined array keyerror whenupdateFieldis not in columns. - Fixed data persistence issues on pagination (added
wire:keyand cache invalidation).
- Added
setUpdateField()method toColumnto support updating relationship IDs while displaying names. - Added translations for "Select an option" placeholder.
[2.4.2] - 2025-12-24
Changed
- Changed columns to be Sortable and Searchable by default.
- Added
sortable(bool)andsearchable(bool)modifiers toColumnclass to explicitly enable/disable these features.
[2.4.0] - 2025-12-19
Changed
- Enhanced Inline Editing UI:
- Added success/error visual feedback with icons (Check/Exclamation).
- Added loading state spinner during save.
- Improved hover effects with specific card styling (inner div with
hover:bg-amber-200type effect). - Made
updateFieldreturn a boolean status for UI feedback.
- Updated documentation with comprehensive examples for inline editing.
[2.3.11] - 2025-12-18
Changed
- Updated default
inputThemeOverridetobeartropyinViewtrait.
[2.3.10] - 2025-12-18
Changed
- Updated defaults in
Viewtrait to fallback tograytheme. - Updated pagination components to respect
buttonThemeOverride.
Added
- Added
getThemeConfighelper method toViewtrait.
[2.3.9] - 2025-12-18
Changed
- Removed
.agentfolder from repository and added it to.gitignore.
[2.3.8] - 2025-12-18
Added
- Added
setButtonThemeOverride(?string $theme)andsetInputThemeOverride(?string $theme)toViewtrait to allow overriding themes for specific components.
[2.3.7] - 2025-12-18
Added
- Added
useGlobalSearch(bool)method toSearchtrait to toggle global search input visibility. - Added
showOnlyTable(bool)method toYATBaseTableto quickly disable global search, pagination, and column toggle. - Added
pushLeft()andpushRight()methods toColumnclass for easy content and header alignment using Tailwind CSS.
Fixed
- Fixed table header alignment (
text-left,pl-2) for the row counter column inyat-table.blade.php.