Skip to content

v1.18.0

Choose a tag to compare

@happytodev happytodev released this 27 Jun 12:47
· 4 commits to main since this release

✨ Features

  • Artist portfolio blocks: add Hero Carousel (Alpine.js slider), advanced Gallery (horizontal/filtered modes), Pricing Commissions, and Artist Bio CMS blocks
  • Gallery: add display_mode option (grid, masonry, bento, horizontal, filtered) with black & white hover effect and category filtering
  • Reusable <x-blogr::social-links> component, extracted from footer
  • Workflow: add batch grouping, bug workflow rules, merge step in git-changelog, pre-flight check in release-manager
  • Quality harness: add Pint (code style), PHPStan level 5, Lefthook pre-commit hooks

🐛 Bug Fixes

  • Carousel/Team/Pricing/Artist Bio: fix "Array to string conversion" when Filament stores image paths as arrays inside Repeaters
  • Carousel: fix "A non-numeric value encountered" (cast $index to int)
  • Carousel: show first slide before Alpine.js initialization (was invisible)
  • Carousel: normalize UUID keys from Filament Repeater (array_values)
  • All blocks: prevent Storage::url('') 404 when image path is empty
  • File persistence: persist Livewire TemporaryUploadedFile before JSON serialization (was losing file paths in Repeaters)
  • AutoSave: fix serialize() crash on TemporaryUploadedFile objects

🧪 Tests

  • 1200 tests, 0 failures