PHPackages                             goodappr/moonshine-menu-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. goodappr/moonshine-menu-manager

ActiveLibrary[Admin Panels](/categories/admin)

goodappr/moonshine-menu-manager
===============================

Drag-and-drop menu manager for MoonShine 4.x: multi-zone layout (sidebar, topbar, bottom bar), visibility toggle, per-user configuration

1.0.0(2mo ago)752↑250%1MITPHPPHP ^8.2

Since Feb 19Pushed 2mo agoCompare

[ Source](https://github.com/GoodAppR/moonshine-menu-manager)[ Packagist](https://packagist.org/packages/goodappr/moonshine-menu-manager)[ Docs](https://github.com/GoodAppR/moonshine-menu-manager)[ RSS](/packages/goodappr-moonshine-menu-manager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

MoonShine Menu Manager
======================

[](#moonshine-menu-manager)

Drag-and-drop menu manager for [MoonShine 4.x](https://moonshine-laravel.com/) admin panel. Organize menu items across multiple zones (sidebar, topbar, bottom bar), reorder groups and standalone items, toggle visibility — all from a visual interface.

[![MoonShine Menu Manager](images/banner.png)](images/banner.png)

Features
--------

[](#features)

- **Multi-zone layout** — distribute menu items across sidebar, topbar, and bottom bar
- **Drag-and-drop** — reorder groups and individual items (including nested items within groups)
- **Visibility toggle** — hide/show individual items or entire groups
- **Per-user configuration** — optionally save menu layout per MoonShine user
- **Bottom bar controls** — "always visible" toggle for the bottom bar zone
- **Dark mode** — full support for MoonShine's dark theme
- **Responsive** — works on mobile devices

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 11+
- MoonShine 4.x

Installation
------------

[](#installation)

```
composer require goodappr/moonshine-menu-manager
```

### Run migrations

[](#run-migrations)

```
php artisan migrate
```

This creates two tables:

- `menu_item_configs` — stores item positions, zones, visibility, and parent relationships
- `menu_zone_settings` — stores per-zone settings (e.g. bottom bar "always visible")

### Publish configuration (optional)

[](#publish-configuration-optional)

```
php artisan vendor:publish --tag=moonshine-menu-manager-config
```

This publishes `config/moonshine_menu_manager.php`:

```
return [
    // Enable/disable the menu manager globally
    'enabled' => true,

    // Available zones
    'zones' => ['sidebar', 'topbar', 'bottom_bar'],

    // Default active zones for layouts without saved config
    'default_layout_zones' => ['sidebar', 'topbar', 'bottom_bar'],

    // Layout-specific overrides (reserved for future use)
    'layouts' => [],

    // Save menu configuration per MoonShine user
    'per_user' => false,
];
```

Setup
-----

[](#setup)

### 1. Add the trait to your layout

[](#1-add-the-trait-to-your-layout)

In your MoonShine layout class (e.g. `app/MoonShine/Layouts/MoonShineLayout.php`), add the `CustomMenuManager` trait:

```
