Icons - v2.1.0
Icons Changelog
2.1.0 - 2025-11-22
🚨 Breaking Changes
Hooks Package Migration
- CHANGED: Migrated from
tormjens/eventytoartisanpack-ui/hooksfor event/filter management - CHANGED: Filter syntax updated from
Eventy::addFilter()toaddFilter()global helper - REMOVED: Dependency on
tormjens/eventypackage - ADDED: Dependency on
artisanpack-ui/hooks^1.0
Migration Guide:
// Before (v2.0)
use TorMorten\Eventy\Facades\Eventy;
Eventy::addFilter('ap.icons.register-icon-sets', function (IconSetRegistration $registry) {
$registry->addSet(__DIR__ . '/../../resources/icons', 'mypackage');
return $registry;
});
// After (v2.1)
use ArtisanPackUI\Icons\Registries\IconSetRegistration;
addFilter('ap.icons.register-icon-sets', function (IconSetRegistration $registry) {
$registry->addSet(__DIR__ . '/../../resources/icons', 'mypackage');
return $registry;
});
✨ New Features
Laravel Boost Integration
- NEW: Added AI guidelines for Laravel Boost at
resources/boost/guidelines/core.blade.php - NEW: Automatic guideline loading when users run
php artisan boost:install - Provides AI-powered code generation support for icon registration and usage
Developer Experience
- NEW: Added Claude Code settings (
.claude/settings.local.json) for improved AI-assisted development - NEW: Pre-configured permissions for common development tasks (mkdir, git checkout, composer, tests)
🔧 Improvements
CI/CD Pipeline
- FIXED: GitLab CI build stage now uses
php:8.2-cliimage instead ofcomposer:2 - FIXED: Resolved PHP version compatibility issues (locked dependencies support PHP 8.2-8.4)
- IMPROVED: More reliable dependency installation in CI environment
Documentation
- UPDATED: All documentation examples migrated to new
addFilter()syntax - UPDATED: README.md with correct hooks usage
- UPDATED: Extension API documentation (
docs/guide/extension-api.md) - UPDATED: Architecture documentation (
docs/guide/architecture.md) - UPDATED: Service Provider documentation (
docs/guide/service-provider.md)
🐛 Bug Fixes
- Fixed all test suite compatibility with new hooks package (39 tests passing)
- Removed unused Eventy imports from test files
- Updated TestCase to use
HooksServiceProviderinstead ofEventServiceProvider
📦 Dependencies
- Replaced
tormjens/eventy: ^0.9.4withartisanpack-ui/hooks: ^1.0 - All other dependencies remain unchanged
🔄 Upgrade Path
- Update your
composer.jsonto requireartisanpack-ui/hooks: ^1.0instead oftormjens/eventy - Run
composer update - Update any custom code using
Eventy::addFilter()to useaddFilter()global helper - Remove any
use TorMorten\Eventy\Facades\Eventy;imports - Test your icon registrations work correctly
2.0.0 - 2025-10-06
🚨 MAJOR BREAKING CHANGES
This release represents a fundamental architectural transformation from a hardcoded icon provider to an extensibility layer for custom icon sets using blade-ui-kit/blade-icons.
Removed Classes and Methods
- REMOVED:
ArtisanPackUI\Icons\Iconsclass (17,282 lines)getIcons()methodiconsList()method
- REMOVED:
ArtisanPackUI\Icons\Facades\Iconsfacade - REMOVED: All facades directory and classes
Removed Helper Functions
- REMOVED:
getIcons()global helper function - REMOVED:
iconsLists()global helper function - REMOVED:
icons()global helper function - REMOVED:
helpers.phpfile completely
Removed Blade Directives
- REMOVED:
@apIconsBlade directive - REMOVED: All hardcoded icon rendering functionality
Removed Asset Serving
- REMOVED: Asset serving routes (previously at
/artisanpack-ui-icons/css) - REMOVED:
dist/directory with CSS and webfonts - REMOVED: Font Awesome bundled assets
- REMOVED:
package.jsonand Node.js build processes
Removed Icon Filtering
- REMOVED: Icon filtering by category, type, or other attributes
- REMOVED: All hardcoded icon data arrays
✨ New Features
Custom Icon Set Registration
- NEW: Configuration-based icon set registration via
config/artisanpack/icons.php - NEW: Event-driven icon set registration using
ap.icons.register-icon-setsfilter - NEW:
IconSetRegistrationclass for structured icon set definitions - NEW: Hybrid registration system (config + events)
Modern Architecture
- NEW: Integration with
blade-ui-kit/blade-iconsv1.8+ - NEW: Blade component approach:
<x-icon-prefix-name /> - NEW: Support for multiple icon sets (Font Awesome Pro, Heroicons, custom)
- NEW: Memory efficient - 95%+ reduction in memory usage
🔧 Configuration Changes
New Configuration File
php artisan vendor:publish --tag=artisanpack-package-config
Required Dependencies
- ADDED:
blade-ui-kit/blade-icons ^1.8 - KEPT:
tormjens/eventy ^0.9.4(for event-driven extensibility) - REMOVED:
ext-fileinfodependency
📚 Migration Guide
⚠️ IMPORTANT: This release requires manual migration. See Migration Guide for detailed instructions.
Quick Migration Steps
- Update composer dependencies to
^2.0 - Publish new configuration:
php artisan vendor:publish --tag=artisanpack-package-config - Remove old code (see migration guide for details)
- Obtain and configure your icon sets (Font Awesome Pro recommended)
- Update templates to use new Blade components
Before/After Examples
Old v1.x:
@apIcons
<i class="ap-icon ap-icon-home"></i>
New v2.0:
<x-icon-fas-home class="w-6 h-6" />
🚨 Deprecation Notice
v1.x End of Life
- v1.x Support: Continues until December 31, 2025
- Security Updates: Critical security fixes only
- Feature Development: All new features will be v2.0+ only
Migration Timeline
- October 2025: v2.0.0 release
- November 2025 - March 2026: Migration period with dual support
- April 2026: v1.x marked as deprecated (warnings in composer)
- January 2027: v1.x end of life
Support Resources
- 📖 Migration Guide - Comprehensive upgrade instructions
- 🏗️ Architecture Guide - Understanding v2.0 design
- 🔌 Extension API - For package developers
- 💡 Usage Examples - Common patterns and recipes
Getting Help
- Documentation: Full migration guide with troubleshooting
- Community: Discussion and questions via GitLab issues
- Professional Support: Available for enterprise migrations
🎯 Benefits of v2.0
Performance Improvements
- Memory Usage: 95%+ reduction (no more hardcoded icon arrays)
- Loading Speed: Only load icons you actually use
- Caching: Better browser caching with SVG components
Flexibility
- Any Icon Set: Use Font Awesome Pro, Heroicons, custom icons
- Multiple Sets: Mix different icon libraries in one project
- Easy Updates: Update icon sets independently of package
Developer Experience
- Better IDE Support: Blade components with autocompletion
- Modern Approach: Aligned with Laravel/Blade best practices
- Direct Control: Manage your own SVG files
1.0.4 - May 14, 2025
- Fixed errors found while renaming the vendor.
1.0.3 - May 14, 2025
- Corrected the version number in the composer.json file.
1.0.2 - May 14, 2025
- Updated vendor name to ArtisanPack UI.
1.0.1 - May 14, 2025
- Updated the version number for the tormjens/eventy package.
1.0.0 - April 30, 2025
- Initial release