genealabs/laravel-multi-step-progressbar
317,792
63
| Install | |
|---|---|
composer require genealabs/laravel-multi-step-progressbar |
|
| Latest Version: | 10.0.0 |
| PHP: | ^8.2 |
| License: | MIT |
| Last Updated: | Mar 28, 2026 |
| Links: | GitHub · Packagist |
Maintainer: mikebronner
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
doctrine/dbal
Powerful PHP database abstraction layer (DBAL) with many features for database s...
641,106,524
9,700
laravel/serializable-closure
Laravel Serializable Closure provides an easy and secure way to serialize closur...
413,412,504
609
nunomaduro/collision
Cli error handling for console/command-line PHP applications.
394,964,158
4,660
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 |