v1.0.0
Major
- Rewritten for Filament v5
- Require PHP 8.3+
Added
- Optional translatable support for menu items and menus (closes #31, #42, #55)
- UUID support for menu item keys
- Indent/unindent buttons for menu hierarchy management
- Upgrade migration for v0.7.x users
- Menu caching with automatic cache busting
- Icon, CSS classes, and
relattribute support for menu items - Active state detection for menu items
Changed
addMenuFields()/addMenuItemFields()now merge arrays instead of replacing- Renamed Livewire event
menu:created→menu:changed - Cache now uses per-location keys instead of a single shared key
StaticMenuPanel::add()accepts optionaltarget,icon,classesparametersTranslatableFieldWrapper::wrap()accepts optional$primaryLocaleparameter- Redirect to edit page after menu creation
Fixed
isActive()false positive for text-only menu items (null URL)- Double query on edit action
- Children not deleted when parent's children relation was stale
- Cache race condition with concurrent
Menu::location()calls - Order collision on concurrent menu item additions (atomic
lockForUpdate) - Translated Edit/Delete action labels
Architecture
- Extracted
ResolvesLocaletrait, IoC container forMenuItemService - Per-location cache keys, DB aggregates for
max(order) - Added
addMenuField()/addMenuItemField()singular API methods
302 tests, 544 assertions