genealabs/laravel-multi-step-progressbar
| Install | |
|---|---|
composer require genealabs/laravel-multi-step-progressbar |
|
| Latest Version: | 10.0.0 |
| PHP: | ^8.2 |
| Laravel: | 10 |
| Older releases: | 7 · 8 · 9 |
| License: | MIT |
| Last Updated: | Mar 28, 2026 |
| Links: | GitHub · Packagist |
Multi-Step Progressbar for Laravel
Version Compatibility
| Laravel | PHP | Package |
|---|---|---|
| 10.x | 8.2-8.5 | 1.x |
| 11.x | 8.2-8.5 | 1.x |
| 12.x | 8.2-8.5 | 1.x |
| 13.x | 8.2-8.5 | 1.x |
Installation
composer require genealabs/laravel-multi-step-progressbar
Implementation
The progress-bar is implemented via a Blade component:
<x-multi-step-progressbar
:model="$record"
:stepData="$stepData"
></x-multi-step-progressbar>
Model
The $record model represents the model that stores the information submitted in the various forms traversed. It will be passed into each view of the steps defined in $stepData and can be used to fill in the forms on each step. What it exactly contains is completely up to you.
Step Data
$stepData is a collection of ProgressbarItem model instances.
Data Points
Each step has the following properties:
- step: the number of the step, presented in sequence.
- url: the URL of the view to load for the given step.
- title: will be displayed on the active step in the progress-bar. Leave blank to not show anything.
- description: will be displayed on the active step in the progress-bar. Leave blank to not show anything.
- canJumpAhead: designates if the user can jump to the step once it has been filled out.
Collection
You can create this as follows:
$stepData = collect()
->push((new ProgressbarItem)->fill([
"step" => 1,
"url" => route("wizards.record-analysis.edit", ["record" => $record, "step" => "1"]),
"title" => "Create Document",
"description" => "",
"canJumpAhead" => true,
]))
->push((new ProgressbarItem)->fill([
"step" => 2,
"url" => route("wizards.record-analysis.edit", ["record" => $record, "step" => "2"]),
"title" => "Search Sources",
"description" => "",
"canJumpAhead" => (bool) $record->title,
]))
->push((new ProgressbarItem)->fill([
"step" => 3,
"url" => route("wizards.record-analysis.edit", ["record" => $record, "step" => "3"]),
"title" => "Create Source",
"description" => "",
"canJumpAhead" => ($record->source || $record->wherein),
]))
// ...
Configuration
<?php
return [
"sprites" => [
"hidden" => [
"bar" => "",
],
// not previously visited step
"unvisited" => [
"bar" => asset("images/assets/progress-bar/unactivated-bar.png"),
"middle-pip" => asset("images/assets/progress-bar/unactivated-middle.png"),
"last-pip" => asset("images/assets/progress-bar/unactivated-end.png"),
],
// previously visited step
"visited" => [
"first-pip" => asset("images/assets/progress-bar/activated-start.png"),
"bar" => asset("images/assets/progress-bar/activated-bar.png"),
"middle-pip" => asset("images/assets/progress-bar/activated-middle.png"),
"last-pip" => asset("images/assets/progress-bar/activated-end.png"),
],
// current step, and previously visited
"active" => [
"first-pip" => asset("images/assets/progress-bar/active-current-start.png"),
"middle-pip" => asset("images/assets/progress-bar/active-activated-middle.png"),
"last-pip" => asset("images/assets/progress-bar/active-current-end.png"),
],
// current and max visited step
"max-active" => [
"first-pip" => asset("images/assets/progress-bar/active-current-start.png"),
"middle-pip" => asset("images/assets/progress-bar/active-current-middle.png"),
"last-pip" => asset("images/assets/progress-bar/active-current-end.png"),
],
// max step, not current, previously visited
"max-visited" => [
"middle-pip" => asset("images/assets/progress-bar/activated-current-middle.png"),
"last-pip" => asset("images/assets/progress-bar/activated-current-end.png"),
],
]
];
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
Version History
| Version | Released | Laravel | License |
|---|---|---|---|
| 10.0.0 | ^10.0 | MIT | |
| 0.3.0 | ^9.0 | MIT | |
| 0.2.0 | ^8.0 | MIT | |
| 0.1.2 | ^7.0 | MIT | |
| 0.1.1 | ^7.0 | MIT | |
| 0.1.0 | ^7.0 | MIT |