41 lines
1.8 KiB
PHP
41 lines
1.8 KiB
PHP
@props([
|
|
'class' => '',
|
|
'icon' => '',
|
|
'dir' => config('bladewind.dropmenu.item.dir', ''),
|
|
'icon_css' => '',
|
|
'divider' => false,
|
|
'header' => false,
|
|
'hover' => config('bladewind.dropmenu.item.hover', true),
|
|
'divided' => config('bladewind.dropmenu.item.divided', false),
|
|
'padded' => config('bladewind.dropmenu.item.padded', true),
|
|
])
|
|
@aware([
|
|
'iconRight' => config('bladewind.dropmenu.item.icon_right', false),
|
|
])
|
|
@php
|
|
$divider = parseBladewindVariable($divider);
|
|
$divided = parseBladewindVariable($divided);
|
|
$header = parseBladewindVariable($header);
|
|
$hover = parseBladewindVariable($hover);
|
|
$padded = parseBladewindVariable($padded);
|
|
$iconRight = parseBladewindVariable($iconRight);
|
|
$icon_css .= ($iconRight) ? ' !ml-2 !-mr-1' : ' !mr-2 -ml-0.5 ';
|
|
@endphp
|
|
|
|
<div @class([
|
|
'flex align-middle text-gray-600 cursor-pointer dark:text-dark-300 w-full text-sm !text-left bw-item '.$class,
|
|
'!border-0' => ($divided && $header),
|
|
'border-y border-t-slate-200/75 border-b-white dark:!border-t-gray-800/40 dark:border-b-gray-100/10 my-1' => ($divider && !$header && !$divided),
|
|
'hidden' => ($divider && !$header && $divided),
|
|
'py-2 px-2.5' => (!$divider && $padded),
|
|
'p-0' => (!$divider && !$padded),
|
|
'flex-row-reverse justify-between' => ($iconRight && !empty($icon)),
|
|
'hover:rounded-md hover:dark:text-dark-100 hover:bg-slate-200/75 hover:dark:!bg-dark-800' => (!$header && $hover),
|
|
'!cursor-default border-b border-b-slate-200/75 dark:!border-b-gray-100/10 mb-1' => $header,
|
|
]) {{$attributes->merge(['data-item' => "true"])}}>
|
|
@if(!empty($icon) && !$header)
|
|
<x-bladewind::icon name="{!! $icon !!}" :dir="$dir"
|
|
class="!size-4 !mt-0.5 !text-gray-400 dark:!text-dark-500 {{$icon_css}}"/>
|
|
@endif
|
|
{!! $slot !!}
|
|
</div> |