Zona de arrastar-e-soltar arquivos, com preview e validação de tamanho/quantidade.
O que é
Interface de envio de arquivo mais amigável que o <input type="file"> puro — arrasta, solta, vê a miniatura, remove antes de enviar.
Como funciona
Aceita clique (abre o seletor nativo) ou arrastar-e-soltar. Cada arquivo é validado contra tamanho máximo e quantidade máxima antes de entrar na lista; imagens ganham preview via URL.createObjectURL (revogado depois de carregar, sem vazar memória).
Exemplos
Padrão Ao vivo
<div sw-upload sw-upload-max="3"></div>
Atributos
sw-upload-accept
tipos aceitos (mesmo formato do atributo accept nativo)
sw-upload-max
quantidade máxima de arquivos
sw-upload-size
tamanho máximo por arquivo em bytes (padrão 10MB)
sw-upload-txt
texto da zona de soltar (aceita HTML simples)
Variantes
Nenhum.
Eventos
sw:upload:add
{ files }
sw:upload:remove
{ index }
API (JavaScript)
SW.Upload.getFiles(el)
retorna a lista de arquivos atual
Requisitos
Nenhuma.
Limitações — o que ele não faz
Só monta a fila e o preview no navegador — o envio de verdade pro servidor (fetch/FormData) fica por sua conta, escutando sw:upload:add ou lendo SW.Upload.getFiles().