New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

nyoncode/wire-admin

The optional admin shell for wire: a layout and a sidebar over the registered catalogue.
477
Install
composer require nyoncode/wire-admin
Latest Version:2.9.4
PHP:^8.2
Laravel:12 · 13
License:MIT
Last Updated:Oct 28, 2026
Links: GitHub  ·  Packagist
Maintainer: NyonCode
WireStack

Wire Admin

The optional admin shell for Wire: a layout and a sidebar over everything an application already registered.

composer require nyoncode/wire-admin
{{-- resources/views/components/layouts/admin.blade.php --}}
<x-wire-admin::layout :title="$title ?? config('app.name')">
    <x-slot:brand>{{ config('app.name') }}</x-slot:brand>
    <x-slot:user><x-app-user-menu /></x-slot:user>

    {{ $slot }}
</x-wire-admin::layout>
config()->set('livewire.component_layout', 'components.layouts.admin');

Every full-page component — the pages Route::wireResources() registers included — now renders inside the shell, with the menu beside it.

Why a package of its own

Three ADRs (0020, 0026, 0027) held that the owner layer holds no shell, and this does not change that: wire-panels still ships pages and routing and no chrome. A composer boundary is the only opt-in nobody can acquire by accident — an application that wants the pages and its own frame simply does not install this.

Installing it is still not adopting it. Nothing here sets livewire.component_layout; a page renders inside the shell only once your own layout says so, and the sidebar works alone inside a frame you wrote.

What it reads

It needs It asks
what is registered Catalog, through Workspace
how it groups, orders and reads Workspace::navigation()
where a key's page lives ResolvesPageUrls — nothing at all until a package owns routing
which zone, which entry is active the current route name, read once while the page renders

No registry, no URL scheme, no Panel object. An entry this zone does not route keeps its row and loses its link, which is the honest picture of a half-routed application; :linked-only="true" drops those rows instead.

Documentation

Full docs: docs/admin/overview.md (česky).

License

MIT.

Related Packages

nyoncode/wire-panels

Application owner layer for wire: resources and their pages.

673 0
nyoncode/wire-module-notifications

Stored notifications for wire: the history behind the bell, as a resource.

100 0
nyoncode/wire-forms

Standalone form system for the Wire ecosystem – fields, validation, layout, stan...

1,271 0
nyoncode/wire-sortable

Drag & drop row reordering plugin for wire-table.

785 0
nyoncode/wire-module-settings

Application settings for wire: typed key/value settings with a page to edit them...

353 0

Version History

Version Released PHP Laravel License
2.9.4 ^8.2 ^12.0|^13.0 MIT
2.9.3 ^8.2 ^12.0|^13.0 MIT
2.9.2 ^8.2 ^12.0|^13.0 MIT
2.9.1 ^8.2 ^12.0|^13.0 MIT
2.9.0 ^8.2 ^12.0|^13.0 MIT