{{-- @intent Fornecer um campo de upload múltiplo de mídias, integrado com a Galeria V2. @description Drag & Drop múltiplo com cropping, alt text e preview em grid. @param string $name Nome base do campo (Obrigatório). @param string $label Rótulo do campo (Obrigatório). @param string $accept Extensões aceitas (Padrão: image/*). @param int $maxFiles Máximo de arquivos (0 = ilimitado). @param string $ownerModule Módulo proprietário. @param array $existingIds Array de UUIDs de mídias existentes. @param array $existingUrls Array de URLs das mídias existentes. --}} @php $name = $name ?? 'media_group'; $label = $label ?? 'Mídias'; $accept = $accept ?? 'image/*'; $maxFiles = $maxFiles ?? 0; $ownerModule = $ownerModule ?? 'global'; $existingIds = $existingIds ?? []; $existingUrls = $existingUrls ?? []; $inputName = $name . '_ids'; @endphp @if (!isset($GLOBALS['media_group_cropper_css_rendered'])) @php $GLOBALS['media_group_cropper_css_rendered'] = true; @endphp @endif
{{-- Hidden inputs para UUIDs --}}
@foreach($existingIds as $index => $id) @endforeach
{{-- Dropzone --}}
Arraste arquivos aqui

ou clique para selecionar múltiplos arquivos

{{-- Grid de previews --}}
@foreach($existingUrls as $index => $url) @php $eid = $existingIds[$index] ?? ''; @endphp
Preview
@endforeach

{{ $maxFiles > 0 ? "Máx: $maxFiles arquivos. " : '' }}Formatos: {{ $accept }}

{{-- Modal de Crop / Metadados --}}
@if (!isset($GLOBALS['media_group_input_scripts_rendered'])) @php $GLOBALS['media_group_input_scripts_rendered'] = true; @endphp @push('scripts') @endpush @endif