{{-- @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 {{ $label }} {{-- 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 @endforeach {{ $maxFiles > 0 ? "Máx: $maxFiles arquivos. " : '' }}Formatos: {{ $accept }} {{-- Modal de Crop / Metadados --}} Ajustar Imagem Rotacionar 90° Texto Alternativo (alt) Descrição / Legenda Compartilhar com outros módulos Confirmar Upload Cancelar @if (!isset($GLOBALS['media_group_input_scripts_rendered'])) @php $GLOBALS['media_group_input_scripts_rendered'] = true; @endphp @push('scripts') @endpush @endif
ou clique para selecionar múltiplos arquivos
{{ $maxFiles > 0 ? "Máx: $maxFiles arquivos. " : '' }}Formatos: {{ $accept }}