SWCore / Componentes / Alert / Toast

Alert / Toast Componentes

Notificações temporárias no canto da tela, mais uma caixa de confirmação modal.

O que é

Avisa o usuário sobre o resultado de uma ação (sucesso, erro, alerta, info) sem interromper o fluxo, e uma confirmar() pra decisões que precisam de resposta explícita.

Como funciona

Cada posição (canto) tem sua própria caixa empilhadora, criada sob demanda. Barra de progresso mostra o tempo até sumir sozinho (duração 0 = fica até ser fechado manualmente). confirmar() abre um overlay modal com foco preso, ESC e clique-fora cancelam.

Exemplos

Por atributo (sw-toast) — os 5 tipos, sem escrever JS Ao vivo
<div class="demo-row">
  <button sw-btn class="sw-btn-suc sw-btn-sm" sw-toast="ok" sw-toast-msg="Salvo com sucesso.">ok</button>
  <button sw-btn class="sw-btn-err sw-btn-sm" sw-toast="err" sw-toast-msg="Não foi possível salvar.">err</button>
  <button sw-btn class="sw-btn-ale sw-btn-sm" sw-toast="ale" sw-toast-msg="Verifique os campos.">ale</button>
  <button sw-btn class="sw-btn-inf sw-btn-sm" sw-toast="inf" sw-toast-msg="Nova versão disponível.">inf</button>
  <button sw-btn class="sw-btn-sec sw-btn-sm" sw-toast="drk" sw-toast-msg="Modo escuro ativado.">drk</button>
</div>
Posições — 9 cantos, clique em qualquer célula Ao vivo
// 1º parâmetro é a posição
// Topo: 'tl' | 'tc' | 'tr'
// Centro: 'cl' | 'cc' | 'cr'
// Base: 'bl' | 'bc' | 'br'
// Padrão: 'tr'
SW.Alert.ok('Salvo!', 3000, 'bl');   // base-esquerda
SW.Alert.err('Erro!', 5000, 'cc');   // centro-tela
Título, duração e posição Ao vivo
<button sw-btn class="sw-btn-out" sw-toast="inf" sw-toast-title="Aviso" sw-toast-msg="Fica 6 segundos, canto superior esquerdo." sw-toast-dur="6000" sw-toast-pos="tl">Disparar no canto superior esquerdo</button>
Via JavaScript Ao vivo
<button type="button" class="sw-btn sw-btn-pri" id="alertJsBtn">Disparar via JS</button>
<script>
  document.getElementById('alertJsBtn').addEventListener('click', () => {
    SW.Alert.ok('Operação concluída com sucesso.');
  });
</script>
Confirmação (SW.Alert.confirmar) Ao vivo
<button type="button" class="sw-btn sw-btn-out" id="confirmBtn">Excluir item</button>
<script>
  document.getElementById('confirmBtn').addEventListener('click', () => {
    SW.Alert.confirmar('Tem certeza que quer excluir?', (ok) => {
      SW.Alert[ok ? 'ok' : 'inf'](ok ? 'Excluído.' : 'Cancelado.');
    });
  });
</script>

Atributos

sw-toast
em botões — dispara um alerta por atributo, sem JS: "ok"/"err"/"ale"/"inf"/"drk"
sw-toast-msg
mensagem
sw-toast-title
título opcional
sw-toast-dur
duração em ms
sw-toast-pos
posição: tr (padrão), tl, tc, br, bl, bc, cl, cr, cc

Variantes

Nenhum.

Eventos

Nenhum.

API (JavaScript)

SW.Alert.ok(msg, dur?, pos?, title?)
toast verde — sucesso
SW.Alert.err(msg, dur?, pos?, title?)
toast vermelho — erro
SW.Alert.ale(msg, dur?, pos?, title?)
toast amarelo — alerta
SW.Alert.inf(msg, dur?, pos?, title?)
toast azul — informação
SW.Alert.drk(msg, dur?, pos?, title?)
toast neutro — silencioso
SW.Alert.sucesso/erro/alerta/info(msg, dur?, pos?)
aliases em português (sem title)
SW.Alert.confirmar(msg, callback, title?, icon?)
caixa de confirmação — callback recebe true/false
dur
ms — 0 = persistente até fechar manualmente (padrão 4000)
pos
tl / tc / tr / cl / cc / cr / bl / bc / br (padrão "tr")

Requisitos

Nenhuma.

Limitações — o que ele não faz

  • Sem fila/limite — se você disparar muitos alertas rapidamente, todos empilham na mesma caixa.