56 lines
2.2 KiB
PHP
56 lines
2.2 KiB
PHP
@props([
|
|
'value' => 'value',
|
|
'label' => 'label',
|
|
'selected' => 'false',
|
|
'flag' => '',
|
|
'image' => '',
|
|
'filter_by' => '',
|
|
'selectable' => 'true',
|
|
'empty_state' => 'false',
|
|
'empty_state_message' => config('bladewind.select.empty_placeholder', 'No options available'),
|
|
'empty_state_button_label' => 'Add',
|
|
'empty_state_onclick' => '',
|
|
'empty_state_image' => config('bladewind.empty_state.image', '/vendor/bladewind/images/empty-state.svg'),
|
|
'empty_state_show_image' => 'true',
|
|
])
|
|
@aware([
|
|
'onselect' => '',
|
|
])
|
|
|
|
@php
|
|
$selected = parseBladewindVariable($selected);
|
|
$selectable = parseBladewindVariable($selectable);
|
|
$empty_state = parseBladewindVariable($empty_state);
|
|
$label = html_entity_decode($label);
|
|
@endphp
|
|
<div
|
|
class="py-3 pl-4 pr-3 flex items-center text-base cursor-pointer bw-select-item @if($selectable) hover:bg-slate-100/90 dark:hover:bg-dark-800/50 dark:hover:text-dark-200 @else text-blue-900/40 @endif"
|
|
data-label="{!! $label !!}" data-value="{{ $value }}"
|
|
@if(!$selectable) data-unselectable @endif
|
|
@if(!empty($filter_by)) data-filter-value="{{$filter_by}}" @endif
|
|
@if($selected) data-selected="true" @endif
|
|
@if($onselect !== '') data-user-function="{{ $onselect }}"@endif>
|
|
@if($empty_state)
|
|
<div class="text-center flex-grow">
|
|
<x-bladewind::empty-state
|
|
class="!px-0 !pb-0"
|
|
image_css="!h-24"
|
|
:message="$empty_state_message"
|
|
:button_label="$empty_state_button_label"
|
|
:image="$empty_state_image"
|
|
:show_image="$empty_state_show_image"
|
|
onclick="{!! $empty_state_onclick !!}">
|
|
</x-bladewind::empty-state>
|
|
</div>
|
|
@else
|
|
@if ($flag !== '' && $image == '')
|
|
<i class="{{ $flag }} flag"></i>
|
|
@endif
|
|
@if ($image !== '')
|
|
<x-bladewind::avatar size="small" class="!mt-0 !mr-4" image="{{ $image }}"/>
|
|
@endif
|
|
<span class="grow text-left">{!! $label !!}</span>
|
|
<x-bladewind::icon name="check-circle" class="text-slate-400 size-5 hidden svg-{{$value }}"/>
|
|
@endif
|
|
</div>
|