invelity/laravel-headless-wizard

Headless multi-step wizard package for Laravel with FormRequest validation, progress tracking, and frontend-agnostic API

Fund package maintenance!
WebSystem

Installs: 9

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 2

pkg:composer/invelity/laravel-headless-wizard


README

Laravel Headless Wizard

Latest Version on Packagist GitHub Tests Total Downloads Code Coverage PHPStan

A powerful headless multi-step wizard package for Laravel. Build complex, multi-page forms with progress tracking, navigation, and validation. Bring your own frontend - works with React, Vue, Inertia, Livewire, Alpine.js, or any JavaScript framework.

✨ Features

  • 🚀 Zero Frontend Lock-in - Pure JSON API for any framework
  • Interactive Generators - Beautiful CLI with Laravel Prompts for wizard creation
  • 🎨 Pre-built Components - Blade components for rapid prototyping (Layout, ProgressBar, Navigation)
  • 🔄 Vue 3 Composable - useWizard() composable with TypeScript definitions for SPA integration
  • 🔀 Multi-Type Wizards - Generate Blade, API, Livewire, or Inertia wizards
  • Laravel-Native Validation - Uses FormRequest classes with automatic integration
  • 💾 Flexible Storage - Session, database, or cache adapters
  • 📊 Smart Progress Tracking - Real-time completion percentages with automatic calculation
  • 🔀 Conditional Logic - Optional steps, dynamic flows, and step reordering
  • 🔔 Event-Driven - Hook into every wizard lifecycle event
  • Modern PHP 8.4 - Property hooks, constructor promotion, and strict types

📚 Documentation

Full documentation available at: https://invelity.github.io/laravel-headless-wizard/

🚀 Quick Start

Install the package:

composer require invelity/laravel-headless-wizard

Publish the configuration:

php artisan vendor:publish --tag="wizard-config"

Create your first wizard (interactive):

php artisan wizard:make Onboarding
# Choose wizard type: blade, api, livewire, or inertia

Or with options:

php artisan wizard:make Onboarding --type=blade

Add steps to your wizard:

php artisan wizard:make-step Onboarding PersonalInfo --order=1
# Interactive prompts guide you through step creation

📋 Requirements

  • PHP 8.4 or higher
  • Laravel 11.0 or 12.0

📊 Code Quality

  • 89.7% Test Coverage - 397 comprehensive Pest tests
  • Cyclomatic Complexity: 4.37 - Clean, maintainable code
  • PHPStan Level 5 - Zero static analysis errors
  • 100% Type Coverage - Full type declarations
  • Architecture Tests - SOLID principles enforced via Pest Arch

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details.

🔒 Security

Report security vulnerabilities via GitHub Security.

📝 License

The MIT License (MIT). See LICENSE.md for details.

👨‍💻 Credits

Built with ❤️ by Invelity