@props([ 'name' => null, 'options' => [], 'selected' => null, 'placeholder' => null, 'id' => null, 'hasSearch' => true, ]) @php $id = $id ?? $name ?? 'select-' . uniqid(); $options = is_iterable($options) ? $options : []; // Skill Standard: Use " " for empty/all options to bypass Preline hiding while staying 'blank' $isEmptySelected = (is_null($selected) || (string)$selected === '' || (string)$selected === ' '); $config = [ "placeholder" => $placeholder ?: __('Select...'), "hasSearch" => (bool)$hasSearch, "searchPlaceholder" => $placeholder ?: __('Search...'), "isHidePlaceholder" => false, "searchClasses" => "block w-[calc(100%-16px)] mx-2 py-2 px-3 text-sm border-slate-200 dark:border-white/10 rounded-lg focus:border-cyan-500 focus:ring-cyan-500 bg-slate-50 dark:bg-slate-900/50 dark:text-slate-200 placeholder:text-slate-400 dark:placeholder:text-slate-500", "searchWrapperClasses" => "sticky top-0 bg-white/95 dark:bg-slate-900/95 backdrop-blur-md p-2 z-10", "toggleClasses" => "hs-select-toggle luxury-select-toggle", "dropdownClasses" => "hs-select-menu w-full bg-white dark:bg-slate-900 border border-slate-200 dark:border-white/10 rounded-xl shadow-[0_20px_50px_rgba(0,0,0,0.3)] mt-2 z-[100] animate-luxury-in", "optionClasses" => "hs-select-option py-2.5 px-3 mb-0.5 text-sm text-slate-800 dark:text-slate-300 cursor-pointer hover:bg-slate-100 dark:hover:bg-cyan-500/10 dark:hover:text-cyan-400 rounded-lg flex items-center justify-between transition-all duration-300", "optionTemplate" => '
' ]; @endphp
merge(['class' => 'relative w-full'])->only('class') }}>