jibaymcs/filament-tour
Add DriverJS-powered guided tours to your Filament panels. Register tours on pages with a simple trait, define steps with titles/descriptions, and optionally show tours only once via localStorage. Supports Filament v2–v5 with easy plugin setup.
Panel::plugins()). This ensures seamless integration with Filament’s architecture (v2-v5), aligning with Laravel’s modular design.filament-tour::open-tour, filament-tour::open-highlight) for dynamic triggering, fitting Laravel’s event system and Filament’s Livewire/AlpineJS ecosystem.Tour::make()->steps()) or JSON.->visible(fn() => auth()->user()->hasSeenTour())).$dispatch() or Livewire.dispatch().localStorage; may conflict with privacy tools or multi-tab scenarios.localStorage for "only visible once" tracking.jibaymcs/filament-tour:^5.0.composer require jibaymcs/filament-tour:"^5.0"
php artisan vendor:publish --tag="filament-tour-config" # Optional
Panel configuration:
->plugins([FilamentTourPlugin::make()->enableCssSelector()]) // Enable dev tool
use JibayMcs\FilamentTour\Tour\Tour;
public function tours(): array {
return [Tour::make('dashboard')->steps(Step::make()->title("..."))];
}
Tour::make(json: Storage::get('tours/dashboard.json'))
$this->dispatch('filament-tour::open-tour', 'dashboard');
<button x-on:click="$dispatch('filament-tour::open-tour', 'dashboard')">
Start Tour
</button>
localStorage or DriverJS.->colors()) match your theme.driverjs version to avoid surprises.enableCssSelector()) for troubleshooting.localStorage is fine for "seen once" tracking, but avoid excessive data.->route() or event triggers).__() for translations.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| DriverJS JavaScript errors | Tours/highlights fail silently | Polyfills, error boundaries, user feedback. |
localStorage blocked |
"Only visible once" fails | Fallback to session storage or server-side tracking. |
| Filament UI changes (class names) | Tours highlight wrong elements | Test with CSS Selector Tool; update selectors. |
| Unmaintained package | Security/bug risks | Fork, monitor GitHub issues, or replace. |
| High tour complexity | Poor UX or performance | Limit steps, use JSON for static tours. |
How can I help you explore Laravel packages today?