analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
54 lines • 2.06 kB
TypeScript
import { ReactNode } from 'react';
export interface ProgressModalProps {
/** Controla se o modal está aberto */
isOpen: boolean;
/** Callback ao fechar */
onClose: () => void;
/**
* Mensagem principal exibida abaixo da imagem. Também é usada como
* accessible name do dialog (renderizada visualmente escondida no `<h2>`
* do Modal pra leitores de tela).
*/
message: ReactNode;
/** URL ou import de imagem ilustrativa (opcional) */
image?: string;
/** Alt text da imagem — se não informado usa a `message` quando for string */
imageAlt?: string;
/**
* Accessible name quando `message` é ReactNode. Se omitido, cai em
* "Carregando". Ignorado quando `message` é string.
*/
accessibleName?: string;
/**
* Valor 0-100. Se omitido, mostra indicador indeterminado (pulse sem %).
* Use quando o backend não reportar progresso real.
*/
progress?: number;
/** Tamanho do Modal. Default: 'sm' */
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
}
/**
* Modal de progresso com imagem ilustrativa + mensagem + ProgressBar.
*
* Pensado para operações assíncronas longas (upload, OCR, correção por IA, etc).
* Quando `progress` é omitido, a barra é renderizada em modo indeterminado
* (`animate-pulse` sem percentual visível).
*
* Layout: X no topo direito, imagem centralizada, mensagem abaixo da imagem,
* progress bar ao final. A mensagem também é injetada como título invisível
* (`sr-only`) no `<h2>` do Modal pra acessibilidade.
*
* @example
* ```tsx
* <ProgressModal
* isOpen={isLoading}
* onClose={() => setIsLoading(false)}
* image={myImage}
* message="Analisando sua redação..."
* // progress opcional — sem valor, usa indicador indeterminado
* />
* ```
*/
declare const ProgressModal: ({ isOpen, onClose, message, image, imageAlt, accessibleName, progress, size, }: ProgressModalProps) => import("react/jsx-runtime").JSX.Element;
export default ProgressModal;
//# sourceMappingURL=ProgressModal.d.ts.map