diff --git a/docs-assets/app/app/Livewire/Panels/Navigation/Badge.php b/docs-assets/app/app/Livewire/Panels/Navigation/Badge.php new file mode 100644 index 0000000000..72646eb579 --- /dev/null +++ b/docs-assets/app/app/Livewire/Panels/Navigation/Badge.php @@ -0,0 +1,24 @@ +getCurrentPanel() + ->navigationItems([ + NavigationItem::make() + ->label('Orders') + ->url(fn(): string => '#') + ->icon('heroicon-o-shopping-cart') + ->badge(24), + ]); + } +} diff --git a/docs-assets/app/app/Livewire/Panels/Navigation/BadgeColor.php b/docs-assets/app/app/Livewire/Panels/Navigation/BadgeColor.php new file mode 100644 index 0000000000..ece5d77f20 --- /dev/null +++ b/docs-assets/app/app/Livewire/Panels/Navigation/BadgeColor.php @@ -0,0 +1,25 @@ +getCurrentPanel() + ->navigationItems([ + NavigationItem::make() + ->label('Orders') + ->url(fn(): string => '#') + ->icon('heroicon-o-shopping-cart') + ->badge(32, Color::Red), + ]); + } +} diff --git a/docs-assets/app/app/Livewire/Panels/Navigation/BadgeTooltip.php b/docs-assets/app/app/Livewire/Panels/Navigation/BadgeTooltip.php new file mode 100644 index 0000000000..91abcd83ab --- /dev/null +++ b/docs-assets/app/app/Livewire/Panels/Navigation/BadgeTooltip.php @@ -0,0 +1,25 @@ +getCurrentPanel() + ->navigationItems([ + NavigationItem::make() + ->label('Users') + ->url(fn(): string => '#') + ->icon('heroicon-o-user-group') + ->badge(12) + ->badgeTooltip('The number of users'), + ]); + } +} diff --git a/docs-assets/app/resources/views/livewire/panels/navigation/badge-color.blade.php b/docs-assets/app/resources/views/livewire/panels/navigation/badge-color.blade.php new file mode 100644 index 0000000000..42eb8c531d --- /dev/null +++ b/docs-assets/app/resources/views/livewire/panels/navigation/badge-color.blade.php @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file diff --git a/docs-assets/app/resources/views/livewire/panels/navigation/badge-tooltip.blade.php b/docs-assets/app/resources/views/livewire/panels/navigation/badge-tooltip.blade.php new file mode 100644 index 0000000000..3a6cce8d18 --- /dev/null +++ b/docs-assets/app/resources/views/livewire/panels/navigation/badge-tooltip.blade.php @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file diff --git a/docs-assets/app/resources/views/livewire/panels/navigation/badge.blade.php b/docs-assets/app/resources/views/livewire/panels/navigation/badge.blade.php new file mode 100644 index 0000000000..42eb8c531d --- /dev/null +++ b/docs-assets/app/resources/views/livewire/panels/navigation/badge.blade.php @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file diff --git a/docs-assets/app/routes/web.php b/docs-assets/app/routes/web.php index a6291ae06b..27994605d8 100644 --- a/docs-assets/app/routes/web.php +++ b/docs-assets/app/routes/web.php @@ -8,6 +8,9 @@ use App\Livewire\Infolists\EntriesDemo; use App\Livewire\Infolists\LayoutDemo as InfolistsLayoutDemo; use App\Livewire\NotificationsDemo; use App\Livewire\Panels\Navigation\ActiveIcon; +use App\Livewire\Panels\Navigation\Badge; +use App\Livewire\Panels\Navigation\BadgeColor; +use App\Livewire\Panels\Navigation\BadgeTooltip; use App\Livewire\Panels\Navigation\ChangeIcon; use App\Livewire\Panels\Navigation\CustomItems; use App\Livewire\Panels\Navigation\DisabledNavigation; @@ -56,5 +59,8 @@ Route::group(['prefix' => 'panels'], function () { Route::get('top-navigation', TopNavigation::class); Route::get('sidebar-collapsible-on-desktop', SidebarCollapsibleOnDesktop::class); Route::get('sidebar-fully-collapsible-on-desktop', SidebarFullyCollapsibleOnDesktop::class); + Route::get('badge', Badge::class); + Route::get('badge-color', BadgeColor::class); + Route::get('badge-tooltip', BadgeTooltip::class); }); }); diff --git a/docs-assets/screenshots/images/dark/panels/navigation/badge-color.jpg b/docs-assets/screenshots/images/dark/panels/navigation/badge-color.jpg new file mode 100644 index 0000000000..83a35ebdb0 Binary files /dev/null and b/docs-assets/screenshots/images/dark/panels/navigation/badge-color.jpg differ diff --git a/docs-assets/screenshots/images/dark/panels/navigation/badge-tooltip.jpg b/docs-assets/screenshots/images/dark/panels/navigation/badge-tooltip.jpg new file mode 100644 index 0000000000..c57673279c Binary files /dev/null and b/docs-assets/screenshots/images/dark/panels/navigation/badge-tooltip.jpg differ diff --git a/docs-assets/screenshots/images/dark/panels/navigation/badge.jpg b/docs-assets/screenshots/images/dark/panels/navigation/badge.jpg new file mode 100644 index 0000000000..6e4e8ca286 Binary files /dev/null and b/docs-assets/screenshots/images/dark/panels/navigation/badge.jpg differ diff --git a/docs-assets/screenshots/images/light/panels/navigation/badge-color.jpg b/docs-assets/screenshots/images/light/panels/navigation/badge-color.jpg new file mode 100644 index 0000000000..59b2e03d6b Binary files /dev/null and b/docs-assets/screenshots/images/light/panels/navigation/badge-color.jpg differ diff --git a/docs-assets/screenshots/images/light/panels/navigation/badge-tooltip.jpg b/docs-assets/screenshots/images/light/panels/navigation/badge-tooltip.jpg new file mode 100644 index 0000000000..5f0ca05102 Binary files /dev/null and b/docs-assets/screenshots/images/light/panels/navigation/badge-tooltip.jpg differ diff --git a/docs-assets/screenshots/images/light/panels/navigation/badge.jpg b/docs-assets/screenshots/images/light/panels/navigation/badge.jpg new file mode 100644 index 0000000000..7bbed189ad Binary files /dev/null and b/docs-assets/screenshots/images/light/panels/navigation/badge.jpg differ diff --git a/docs-assets/screenshots/schema.js b/docs-assets/screenshots/schema.js index b0255b9324..163f2d798c 100644 --- a/docs-assets/screenshots/schema.js +++ b/docs-assets/screenshots/schema.js @@ -2047,6 +2047,47 @@ export default { await new Promise((resolve) => setTimeout(resolve, 500)) }, }, + 'panels/navigation/badge': { + url: 'panels/navigation/badge', + selector: 'body', + viewport: { + width: 1080, + height: 640, + deviceScaleFactor: 0, + }, + crop: (image) => { + return image.extract({ width: 650, height: 500, left: 0, top: 0 }) + }, + }, + 'panels/navigation/badge-color': { + url: 'panels/navigation/badge-color', + selector: 'body', + viewport: { + width: 1080, + height: 640, + deviceScaleFactor: 0, + }, + crop: (image) => { + return image.extract({ width: 650, height: 500, left: 0, top: 0 }) + }, + }, + 'panels/navigation/badge-tooltip': { + url: 'panels/navigation/badge-tooltip', + selector: 'body', + viewport: { + width: 1080, + height: 640, + deviceScaleFactor: 0, + }, + crop: (image) => { + return image.extract({ width: 750, height: 500, left: 0, top: 0 }) + }, + before: async (page) => { + await page.hover('.fi-badge') + + await new Promise((resolve) => setTimeout(resolve, 500)) + }, + }, 'tables/example': { url: 'tables?table=example', selector: 'body', diff --git a/packages/panels/docs/06-navigation.md b/packages/panels/docs/06-navigation.md index 69f3c8092d..de25807f48 100644 --- a/packages/panels/docs/06-navigation.md +++ b/packages/panels/docs/06-navigation.md @@ -70,6 +70,8 @@ public static function getNavigationBadge(): ?string } ``` + + If a badge value is returned by `getNavigationBadge()`, it will display using the primary color by default. To style the badge contextually, return either `danger`, `gray`, `info`, `primary`, `success` or `warning` from the `getNavigationBadgeColor()` method: ```php @@ -79,6 +81,8 @@ public static function getNavigationBadgeColor(): ?string } ``` + + A custom tooltip for the navigation badge can be set in `$navigationBadgeTooltip`: ```php @@ -94,6 +98,8 @@ public static function getNavigationBadgeTooltip(): ?string } ``` + + ## Grouping navigation items You may group navigation items by specifying a `$navigationGroup` property on a [resource](resources/getting-started) and [custom page](pages):