@props([ 'name', 'label', 'value' => [], 'required' => false, 'help' => null, 'fields' => [], 'min' => 0, 'max' => 10, 'sortable' => false ]) @php $items = is_array($value) ? $value : (is_string($value) ? json_decode($value, true) ?? [] : []); $uniqueId = 'repeater_' . md5($name . time()); @endphp
{{ count($items) }}/{{ $max }}
@if(count($items) > 0) @foreach($items as $index => $item)
Item {{ $index + 1 }}
@if($sortable) @endif
@foreach($fields as $fieldName => $fieldConfig) @php $fieldValue = $item[$fieldName] ?? ($fieldConfig['default'] ?? ''); $colClass = 'col-12'; if (isset($fieldConfig['col'])) { $colClass = 'col-md-' . $fieldConfig['col']; } @endphp
@if($fieldConfig['type'] === 'text') @if($fieldConfig['help'] ?? false) {{ $fieldConfig['help'] }} @endif @elseif($fieldConfig['type'] === 'textarea') @if($fieldConfig['help'] ?? false) {{ $fieldConfig['help'] }} @endif @elseif($fieldConfig['type'] === 'select') @if($fieldConfig['help'] ?? false) {{ $fieldConfig['help'] }} @endif @elseif($fieldConfig['type'] === 'image') @if($fieldValue && is_string($fieldValue))
Current image
@endif @if($fieldConfig['help'] ?? false) {{ $fieldConfig['help'] }} @endif @elseif($fieldConfig['type'] === 'url') @if($fieldConfig['help'] ?? false) {{ $fieldConfig['help'] }} @endif @elseif($fieldConfig['type'] === 'number') @if($fieldConfig['help'] ?? false) {{ $fieldConfig['help'] }} @endif @endif
@endforeach
@endforeach @else

No items added yet. Click "Add Item" to get started.

@endif
@if($help && !$errors->has($name))
{{ $help }}
@endif @error($name)
{{ $message }}
@enderror
{{-- Template for new items --}} @push('scripts') @endpush