From 3afd09fadb4e38aecf3499cf10de49e973fe2819 Mon Sep 17 00:00:00 2001 From: Artemis Davakou Date: Thu, 6 Feb 2025 04:50:21 +0100 Subject: [PATCH 1/4] feat: create menu item component --- .../components/menu-item/index.blade.php | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 resources/views/components/menu-item/index.blade.php diff --git a/resources/views/components/menu-item/index.blade.php b/resources/views/components/menu-item/index.blade.php new file mode 100644 index 00000000..c8283a41 --- /dev/null +++ b/resources/views/components/menu-item/index.blade.php @@ -0,0 +1,38 @@ +{{-- + A reusable Blade component for defining custom link variants within a menu. + Supports "default," "highlights," and "destructive" styles. + + Example Usage: + +--}} + +@props([ + 'label', + 'variant' => 'default', + 'href' => null, +]) + +@php + $baseClasses = 'block rounded-lg px-4 py-2 text-center transition-colors duration-200 ease-out '; + $hoverClasses = ' focus:outline-0 hover:bg-slate-600 focus:bg-slate-600'; + + $variantClasses = match ($variant) { + 'highlights' => 'font-bold text-indigo-400', + 'destructive' => 'text-red-400', + default => 'text-slate-200', + }; +@endphp + + + {{ $label }} + From 5f54c96d056f196efa94c3cc33126bb7820ece4c Mon Sep 17 00:00:00 2001 From: Artemis Davakou Date: Thu, 6 Feb 2025 06:05:26 +0100 Subject: [PATCH 2/4] feat: Allow custom classes for menu components --- resources/views/components/menu-item/index.blade.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/views/components/menu-item/index.blade.php b/resources/views/components/menu-item/index.blade.php index c8283a41..f7161d68 100644 --- a/resources/views/components/menu-item/index.blade.php +++ b/resources/views/components/menu-item/index.blade.php @@ -16,12 +16,12 @@ @props([ 'label', 'variant' => 'default', - 'href' => null, + 'href' => '#', ]) @php - $baseClasses = 'block rounded-lg px-4 py-2 text-center transition-colors duration-200 ease-out '; - $hoverClasses = ' focus:outline-0 hover:bg-slate-600 focus:bg-slate-600'; + $baseClasses = 'block rounded-lg px-4 py-2 text-center transition-all duration-200 ease-out'; + $hoverClasses = 'cursor-pointer hover:bg-slate-600 focus:bg-slate-600 focus:outline-0'; $variantClasses = match ($variant) { 'highlights' => 'font-bold text-indigo-400', @@ -32,7 +32,7 @@ merge(['class' => "$baseClasses $variantClasses $hoverClasses"]) }} > {{ $label }} From 8fe8e45f7d4b94d054f6d1abd820b3f42b9ea078 Mon Sep 17 00:00:00 2001 From: Artemis Davakou Date: Thu, 6 Feb 2025 09:29:50 +0100 Subject: [PATCH 3/4] fix: remove unused code --- resources/views/components/menu-item/index.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/components/menu-item/index.blade.php b/resources/views/components/menu-item/index.blade.php index f7161d68..a19214ca 100644 --- a/resources/views/components/menu-item/index.blade.php +++ b/resources/views/components/menu-item/index.blade.php @@ -21,7 +21,7 @@ @php $baseClasses = 'block rounded-lg px-4 py-2 text-center transition-all duration-200 ease-out'; - $hoverClasses = 'cursor-pointer hover:bg-slate-600 focus:bg-slate-600 focus:outline-0'; + $hoverClasses = 'hover:bg-slate-600 focus:bg-slate-600 focus:outline-0'; $variantClasses = match ($variant) { 'highlights' => 'font-bold text-indigo-400', From aa4868331e446370d44935bdbf79e6b0f69ec3d3 Mon Sep 17 00:00:00 2001 From: Artemis Davakou Date: Fri, 7 Feb 2025 15:15:36 +0100 Subject: [PATCH 4/4] fix: remove folder and add menu-item file --- .../views/components/menu-item.blade.php | 31 +++++++++++++++ .../components/menu-item/index.blade.php | 38 ------------------- 2 files changed, 31 insertions(+), 38 deletions(-) create mode 100644 resources/views/components/menu-item.blade.php delete mode 100644 resources/views/components/menu-item/index.blade.php diff --git a/resources/views/components/menu-item.blade.php b/resources/views/components/menu-item.blade.php new file mode 100644 index 00000000..353b83be --- /dev/null +++ b/resources/views/components/menu-item.blade.php @@ -0,0 +1,31 @@ +@props([ + 'label', + 'variant' => 'default', + 'href', +]) + +@php + $baseClasses = 'block rounded-lg px-4 py-2 text-center transition-all duration-200 ease-out'; + $hoverClasses = 'hover:bg-slate-600'; + + $variantClasses = match ($variant) { + 'highlights' => 'font-bold text-indigo-400', + 'destructive' => 'text-red-400', + default => 'text-slate-200', + }; +@endphp + +@if ($href) + twMerge(['class' => "$baseClasses $variantClasses $hoverClasses"]) }} + > + {{ $label }} + +@else + +@endif diff --git a/resources/views/components/menu-item/index.blade.php b/resources/views/components/menu-item/index.blade.php deleted file mode 100644 index a19214ca..00000000 --- a/resources/views/components/menu-item/index.blade.php +++ /dev/null @@ -1,38 +0,0 @@ -{{-- - A reusable Blade component for defining custom link variants within a menu. - Supports "default," "highlights," and "destructive" styles. - - Example Usage: - ---}} - -@props([ - 'label', - 'variant' => 'default', - 'href' => '#', -]) - -@php - $baseClasses = 'block rounded-lg px-4 py-2 text-center transition-all duration-200 ease-out'; - $hoverClasses = 'hover:bg-slate-600 focus:bg-slate-600 focus:outline-0'; - - $variantClasses = match ($variant) { - 'highlights' => 'font-bold text-indigo-400', - 'destructive' => 'text-red-400', - default => 'text-slate-200', - }; -@endphp - -merge(['class' => "$baseClasses $variantClasses $hoverClasses"]) }} -> - {{ $label }} -