meghdadfadaee / nova-menu-search
Search and navigate Laravel Nova main menu items from the sidebar.
Package info
github.com/MeghdadFadaee/nova-menu-search
Language:JavaScript
pkg:composer/meghdadfadaee/nova-menu-search
Requires
- php: ^8.1
- illuminate/support: ^10.48|^11.44|^12.1|^13.0
- laravel/nova: ^5.8
Requires (Dev)
- laravel/nova-devtool: ^1.9
- laravel/pint: ^1.20
- orchestra/testbench-core: ^8.35|^9.12|^10.1|^11.0
- pestphp/pest: ^2.36|^3.8|^4.0|^5.0
- pestphp/pest-plugin-laravel: ^2.4|^3.0|^4.0|^5.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-12 12:05:13 UTC
README
Search and navigate the authorized items in a Laravel Nova 5 main menu directly from the sidebar.
Features
- Works with Nova's default or customized main menu.
- Supports nested menu sections and groups with breadcrumb context.
- Uses Nova's SPA navigation for internal links.
- Supports external GET links and their configured targets.
- Excludes state-changing menu actions such as POST and DELETE links.
- Searches only menu items already authorized and supplied by Nova.
- Handles desktop and responsive sidebars.
- Supports dark mode, RTL layouts, and keyboard access.
- Normalizes common Persian and Arabic character variants.
- Ships with English and Persian translations.
- Requires no migrations, routes, or application-side registration.
Requirements
- PHP 8.1+
- Laravel 10–13
- Laravel Nova 5.8+
Installation
This package requires an existing licensed Nova installation. Configure Composer authentication for Nova through Nova's documented mechanism; never commit auth.json or credentials. Then install the package:
composer require meghdadfadaee/nova-menu-search
Laravel discovers the service provider automatically. Refresh Nova and use the search field above the main menu. Press Ctrl+K on Windows/Linux or Command+K on macOS to focus it.
The compiled assets under dist/ are included in releases, so consuming applications do not need Node.js or an additional build step.
Configuration
The defaults work without publishing configuration. To customize them:
php artisan vendor:publish --tag=nova-menu-search-config
The published config/nova-menu-search.php contains:
return [ 'enabled' => true, 'placeholder' => null, 'no_results' => null, 'shortcut' => 'mod+k', 'max_results' => 10, ];
Set placeholder or no_results to strings to override their translations. Set shortcut to null to disable the shortcut. Shortcut values use Nova's Mousetrap syntax.
How searching works
The package reads Nova's client-side mainMenu state after authorization has been applied. It recursively indexes navigable GET links and includes ancestor section/group labels in the searchable text. For example, a query such as content posts can match a Posts item nested below Content.
No server-side search endpoint is added, and hidden or unauthorized menu items are never added to the index. Non-GET items are intentionally excluded because selecting a search result should navigate rather than trigger a state-changing action.
Development
The project requires access to the private Nova Composer repository:
composer install npm install composer test npm test npm run production vendor/bin/pint --test
Rebuild and commit dist/ whenever frontend source changes. The GitHub Actions workflow always runs credential-free JavaScript and Composer metadata checks. Add NOVA_USERNAME and NOVA_LICENSE_KEY repository secrets to enable the full PHP integration and production-build checks.
Please see CONTRIBUTING.md before submitting a change. Report vulnerabilities according to SECURITY.md, not through a public issue.
Changelog
Please see CHANGELOG.md for release history.
License
Nova Menu Search is open-sourced software licensed under the MIT license.