laravilt / actions
Complete action system with modal support, authorization, and Inertia.js integration. Build interactive UI components with buttons, links, and icon buttons. Includes confirmation modals, custom forms, and secure token-based execution.
Fund package maintenance!
fadymondy
Installs: 383
Dependents: 5
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:HTML
pkg:composer/laravilt/actions
Requires
- php: ^8.3|^8.4
- inertiajs/inertia-laravel: ^2.0
- laravilt/forms: ^1.0
- laravilt/panel: ^1.0
- maatwebsite/excel: ^3.1
- spatie/laravel-package-tools: ^1.14
Requires (Dev)
- larastan/larastan: ^2.9||^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^10.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-arch: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- pestphp/pest-plugin-livewire: ^3.0
- pestphp/pest-plugin-type-coverage: ^3.5
- phpstan/extension-installer: ^1.3||^2.0
- phpstan/phpstan-deprecation-rules: ^1.1||^2.0
- phpstan/phpstan-phpunit: ^1.3||^2.0
README
Laravilt Actions
Complete action system with modal support, authorization, and Inertia.js integration for Laravilt. Build interactive UI components with buttons, links, and icon buttons. Includes confirmation modals, custom forms, password protection, and secure token-based execution.
Features
- 🎨 Multiple Variants - Button, link, and icon button styles
- 🔒 Authorization - Closure-based authorization with record-level checks
- 📊 Modal Support - Confirmation modals, custom forms, slide-overs
- 🎯 Flexible Configuration - Colors, icons, sizes, tooltips
- 🔗 URL Handling - External URLs, internal actions, new tab support
- âš¡ Inertia Integration - Seamless Vue 3 integration
- 📤 Export/Import - Excel/CSV export and import with Laravel Excel
- 🔄 Soft Delete Support - Built-in restore and force delete actions
Action Types
| Type | Description |
|---|---|
Action |
Standard action button |
BulkAction |
Action for multiple selected records |
ViewAction |
Navigate to view page |
EditAction |
Navigate to edit page |
DeleteAction |
Soft delete record |
CreateAction |
Navigate to create page |
ReplicateAction |
Duplicate a record |
RestoreAction |
Restore soft-deleted record |
ForceDeleteAction |
Permanently delete record |
ExportAction |
Export data to Excel/CSV |
ImportAction |
Import data from Excel/CSV |
DeleteBulkAction |
Bulk soft delete |
RestoreBulkAction |
Bulk restore |
ForceDeleteBulkAction |
Bulk permanent delete |
Colors
->color('primary') // Blue ->color('secondary') // Gray ->color('success') // Green ->color('danger') // Red ->color('warning') // Yellow ->color('info') // Light blue
Modal Types
// Confirmation modal ->requiresConfirmation() ->modalHeading('Delete User') ->modalDescription('Are you sure?') // Form modal ->schema([ TextInput::make('reason')->required(), ]) // Slide-over ->slideOver()
Installation
composer require laravilt/actions
The package will automatically register its service provider.
Quick Start
use Laravilt\Actions\Action; $action = Action::make('delete') ->label('Delete') ->icon('trash-2') ->color('danger') ->requiresConfirmation() ->modalHeading('Delete User') ->modalDescription('Are you sure?') ->action(function ($record) { $record->delete(); });
Export & Import
use Laravilt\Actions\ExportAction; use Laravilt\Actions\ImportAction; // Export with custom exporter class ExportAction::make() ->exporter(UserExporter::class) ->fileName('users.xlsx'); // Import with custom importer class ImportAction::make() ->importer(UserImporter::class);
Soft Delete Actions
use Laravilt\Actions\DeleteAction; use Laravilt\Actions\RestoreAction; use Laravilt\Actions\ForceDeleteAction; // Auto-hidden for trashed records DeleteAction::make(); // Auto-visible only for trashed records RestoreAction::make(); ForceDeleteAction::make();
Replicate Action
use Laravilt\Actions\ReplicateAction; ReplicateAction::make() ->excludeAttributes(['slug', 'published_at']) ->beforeReplicaSaved(fn ($replica) => $replica->name .= ' (Copy)') ->afterReplicaSaved(fn ($replica) => /* post-save logic */);
Generator Commands
# Generate an action class php artisan make:action ExportUserAction # Generate an exporter class for ExportAction php artisan laravilt:exporter UserExporter php artisan laravilt:exporter CustomerExporter --model=Customer # Generate an importer class for ImportAction php artisan laravilt:importer UserImporter php artisan laravilt:importer CustomerImporter --model=Customer
Documentation
- Complete Documentation - Full feature guide, API reference, and examples
- MCP Server Guide - AI agent integration
Configuration
Publish the config file:
php artisan vendor:publish --tag="laravilt-actions-config"
Assets
Publish the plugin assets:
php artisan vendor:publish --tag="laravilt-actions-assets"
Testing
composer test
Code Style
composer format
Static Analysis
composer analyse
License
The MIT License (MIT). Please see License File for more information.
