PHPackages                             polashmahmud/dishari - 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. polashmahmud/dishari

ActiveLibrary[Admin Panels](/categories/admin)

polashmahmud/dishari
====================

A dynamic menu builder for Laravel Inertia Vue Shadcn projects.

v1.0.4(7mo ago)231[6 issues](https://github.com/polashmahmud/Dishari/issues)MITVue

Since Dec 5Pushed 7mo agoCompare

[ Source](https://github.com/polashmahmud/Dishari)[ Packagist](https://packagist.org/packages/polashmahmud/dishari)[ RSS](/packages/polashmahmud-dishari/feed)WikiDiscussions main Synced today

READMEChangelog (5)DependenciesVersions (6)Used By (0)

[![Dishari Menu Management](https://private-user-images.githubusercontent.com/8996190/522907569-4cbf1c1f-dd6f-4b06-aea3-1570a0dae195.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjQ0MTcsIm5iZiI6MTc4Mjg2NDExNywicGF0aCI6Ii84OTk2MTkwLzUyMjkwNzU2OS00Y2JmMWMxZi1kZDZmLTRiMDYtYWVhMy0xNTcwYTBkYWUxOTUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDFUMDAwMTU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NDlmZTJjYzZlYmI5NzdlMmU5OTI0M2QxOTQxNTU4MTUyOWI1N2E2NmNkYzRkMzEyNmZkOGJlODBiNDk4ODkzNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.HixfshqWxyKEy9M7sf4rLGx5BYbiZSYkCmCsNNeXurM)](https://private-user-images.githubusercontent.com/8996190/522907569-4cbf1c1f-dd6f-4b06-aea3-1570a0dae195.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjQ0MTcsIm5iZiI6MTc4Mjg2NDExNywicGF0aCI6Ii84OTk2MTkwLzUyMjkwNzU2OS00Y2JmMWMxZi1kZDZmLTRiMDYtYWVhMy0xNTcwYTBkYWUxOTUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MDFUMDAwMTU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NDlmZTJjYzZlYmI5NzdlMmU5OTI0M2QxOTQxNTU4MTUyOWI1N2E2NmNkYzRkMzEyNmZkOGJlODBiNDk4ODkzNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.HixfshqWxyKEy9M7sf4rLGx5BYbiZSYkCmCsNNeXurM)Dishari Menu Management
=======================

[](#dishari-menu-management)

A powerful and flexible menu management package for Laravel applications built with Inertia.js and Vue 3. This package provides a drag-and-drop interface for managing nested menus, complete with icon support, groups, and active status toggling.

Features
--------

[](#features)

- 📱 **Drag &amp; Drop Interface**: Intuitive UI for reordering and nesting menu items.
- 🌳 **Nested Structure**: Support for unlimited levels of nested submenus.
- 📂 **Menu Groups**: Organize menus into logical groups (e.g., Platform, Settings).
- 🎨 **Icon Integration**: Built-in support for Lucide icons with a searchable picker.
- ⚡ **Inertia.js &amp; Vue 3**: Seamless integration with modern Laravel stacks.
- 🛠 **Fully Customizable**: Publishable Vue components to match your application's design.

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

[](#installation)

### 1. Require the Package

[](#1-require-the-package)

Install the package via Composer:

```
composer require polashmahmud/dishari
```

### 2. Run the Installer

[](#2-run-the-installer)

Run the `dishari:install` command to publish the configuration, migrations, and frontend assets.

```
php artisan dishari:install
```

During installation, you will be asked to provide a **directory name** (default: `dishari`). This determines where the frontend files will be published:

- **Pages**: `resources/js/pages/{directoryName}`
- **Components**: `resources/js/components/{directoryName}`

### 3. Run Migrations

[](#3-run-migrations)

Run the migrations to create the menu tables:

```
php artisan migrate
```

### 4. Compile Assets

[](#4-compile-assets)

Recompile your assets to include the new components:

```
npm run dev
```

Frontend Integration
--------------------

[](#frontend-integration)

To display the dynamic menu in your application, you need to update your Sidebar component (usually `resources/js/components/AppSidebar.vue` or similar).

### 1. Update Menu Data Source

[](#1-update-menu-data-source)

Locate your sidebar component and replace the static menu items with the `useDishari` hook.

**Remove static data like this:**

```
const mainNavItems: NavItem[] = [
    {
        title: 'Dashboard',
        href: dashboard(),
        icon: LayoutGrid,
    },
];
```

**Add the dynamic hook:**

```
import { useDishari } from '@/lib/useDishari';

const { menus: mainNavItems } = useDishari();
```

### 2. Import the NavMain Component

[](#2-import-the-navmain-component)

You need to import the `NavMain` component that was published to your project. The path depends on the **directory name** you chose during installation.

If you chose `dishari` (default):

```
import NavMain from '@/components/dishari/NavMain.vue';
```

If you chose `menu`:

```
import NavMain from '@/components/menu/NavMain.vue';
```

**Full Example (`AppSidebar.vue`):**

```

import { useDishari } from '@/lib/useDishari';
// Import from the folder you chose during installation (e.g., 'dishari' or 'menu')
import NavMain from '@/components/dishari/NavMain.vue';

const { menus: mainNavItems } = useDishari();

```

Usage
-----

[](#usage)

### Accessing the Management Interface

[](#accessing-the-management-interface)

Once installed, you can access the menu management interface at:

```
/menu-management

```

### Configuration

[](#configuration)

The configuration file is located at `config/dishari.php`. You can customize the directory name, cache settings, and authentication requirements.

```
return [
    'directory_name' => 'dishari', // The folder name for published Vue files
    'auto_share' => true,          // Automatically share menu data with Inertia
    // ...
];
```

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

[](#requirements)

- PHP 8.2+
- Laravel 11+
- Inertia.js
- Vue 3
- Tailwind CSS
- Shadcn Vue (recommended)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance45

Moderate activity, may be stable

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

211d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8996190?v=4)[Polash Mahmud](/maintainers/polashmahmud)[@polashmahmud](https://github.com/polashmahmud)

---

Top Contributors

[![polashmahmud](https://avatars.githubusercontent.com/u/8996190?v=4)](https://github.com/polashmahmud "polashmahmud (37 commits)")

---

Tags

admin-paneldrag-and-dropdynamic-menuinertiajslaravellaravel-packagemenu-builderrecursive-menushadcn-uisidebarvuejs

### Embed Badge

![Health badge](/badges/polashmahmud-dishari/health.svg)

```
[![Health](https://phpackages.com/badges/polashmahmud-dishari/health.svg)](https://phpackages.com/packages/polashmahmud-dishari)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
