Skip to content

arqel-dev/nav — API Reference

Namespace Arqel\Nav\. NavigationItem + NavigationGroup + Navigation builder + BreadcrumbsBuilder.

Arqel\Nav\NavigationItem (final)

MethodTypeDescription
NavigationItem::make(string $label)selfFactory
NavigationItem::resource(class-string<Resource>)selfExtracts label/icon/sort/URL automatically
label(string)self
icon(string)selflucide-react ID
url(string)selfXOR with route
route(string $name, array $params = [])selfXOR with url
openInNewTab(bool=true)self
visible(Closure)selfPredicate (?Authenticatable) => bool
badge(int|string|Closure)selfNon-int|string Closures dropped
badgeColor(string)self
sort(int)self
isVisibleFor(?Authenticatable)boolOracle
resolveBadge(): int|string|null
toArray()arrayFilters null keys

Arqel\Nav\NavigationGroup (final)

Collapsible group.

MethodDescription
NavigationGroup::make(string $label)Factory
label(string), icon(string), sort(int)Base setters
collapsible(bool=true), collapsed(bool=true)collapsed() implies collapsible()
items(array<NavigationItem>)Rejects non-NavigationItem
addItem(NavigationItem)Dynamic accumulation
toArray()Sorts items by sort + filters by visibility

Arqel\Nav\Navigation (final)

Main builder.

MethodFunction
item(NavigationItem)Adds a top-level item
group(string $label, Closure)Creates a group and populates it via callback
addGroup(NavigationGroup)Adds a group built externally
divider()Inserts a divider
autoRegister(bool=true)Opt-out of auto-registration
autoRegisterFromResources(array<class-string>)Groups Resources by getNavigationGroup() (or top-level if null), idempotent
build(?Authenticatable)array<{kind: 'item'|'group'|'divider', ...}> ordered

Arqel\Nav\BreadcrumbsBuilder (final)

MethodDescription
withResources(array<class-string>)
buildFor(string $routeName, array $params)Resolves breadcrumbs from arqel.{panel}.{resource}.{action}

Supports actions index/create/edit/show. When params['record'] is a Model, interpolates Resource::recordTitle($record). Falls back to ucfirst($slug) when the Resource is not registered.

Constants: ACTION_INDEX = 'index', ACTION_CREATE = 'create', ACTION_EDIT = 'edit', ACTION_SHOW = 'show'.

MIT License — built with Inertia + React + Laravel.