{{-- resources/views/components/form/field.blade.php --}} @props([ 'name', // اسم الحقل (مطلوب) 'type' => 'text', // نوع الحقل 'id' => null, // id (افتراضي = name) 'label' => null, // عنوان الحقل 'value' => null, // القيمة 'placeholder' => null, // placeholder 'hint' => null, // نص مساعد 'required' => false, // مطلوب 'disabled' => false, // معطل 'readonly' => false, // للقراءة فقط 'options' => [], // للـ select والـ checkbox 'rows' => 4, // للـ textarea 'col' => null, // col-md-X (اختياري) 'class' => '', // كلاسات إضافية للـ wrapper 'inputClass' => '', // كلاسات إضافية للـ input 'dir' => null, // ← ltr, rtl, auto (افتراضي = null يورث من الصفحة) ]) @php $inputId = $id ?? $name; $value = old($name, $value); $hasError = $errors->has($name); $inputAttrs = collect([ 'id' => $inputId, 'name' => $name, 'placeholder' => $placeholder, 'disabled' => $disabled ? 'disabled' : null, 'readonly' => $readonly ? 'readonly' : null, 'required' => $required ? 'required' : null, 'dir' => $dir, ])->filter()->toArray(); @endphp
$col, $class => $class, 'mb-3'])> {{-- Label --}} @if($label) @endif {{-- Input --}} @switch($type) @case('text') @case('email') @case('url') @case('number') @case('color') @case('date') @case('time') @case('tel') @case('datetime-local') except(['class']) }} @foreach($inputAttrs as $attr => $val) {{ $attr }}="{{ $val }}" @endforeach > @break @case('password')
except(['class']) }} @foreach($inputAttrs as $attr => $val) {{ $attr }}="{{ $val }}" @endforeach >
@break @case('textarea') @break @case('select') @break @case('checkbox')
except(['class']) }} @foreach($inputAttrs as $attr => $val) {{ $attr }}="{{ $val }}" @endforeach {{ $value ? 'checked' : '' }} >
@break @endswitch {{-- Hint --}} @if($hint)
{{ $hint }}
@endif {{-- Error --}} @error($name)
{{ $message }}
@enderror