vildanbina/livewire-wizard
Dynamic multi-step wizard forms for Laravel Livewire. Build step-by-step workflows backed by a model, with Tailwind modal UI and WireUI integration. Includes Alpine support and publishable views so you can customize the markup and styling.
composer require vildanbina/livewire-wizardWizardComponent and define $steps = [StepClass::class, ...]Step, implement title(), view, mount(), validate(), and save()<livewire:wizard-class />wire:model="state.field" in step views — the package expects all inputs nested under $statemodel() in WizardComponent to supply Eloquent instance; in Step::mount(), hydrate $state with existing data via $this->mergeState([...])$this->goToNextStep(), $this->setStep(2), or $this->resetForm() in step actions or buttonsStep::validate() — the package handles display and abort behavior automaticallyonStepIn(), onStepOut(), updatedState(), updatingState() for analytics, conditional logic, or async side effectsphp artisan vendor:publish --tag=livewire-wizard-views to tailor layout, icons, or footer (e.g., add "Save Draft" button)<x-wui-card>, <x-wui-input>, etc., in step views for consistent styling (package expects WireUI)tailwind.config.js includes the package’s view paths (e.g., ./vendor/vildanbina/livewire-wizard/resources/views/*.blade.php) to avoid missing classes in production builds$state isolation: Do not mix $state properties with top-level component properties — $state is the canonical data source for validation and savingvalidate() method returns [rules, messages, attributes]; omitting rules or messages is allowed, but ensure correct index alignment if partially customizingresetForm() behavior: Clears $state, resets current step to first, but does not re-instantiate the model — use setModel() or reload in mount() if needed$this->getCurrentStep() in updatedState() or livewire dev tools to inspect step context and state snapshots during developmentHow can I help you explore Laravel packages today?