Skip to content

feat(guided-tour): adiciona novo componente po-guided-tour com tour interativo#2736

Open
alinecbgml wants to merge 2 commits intopo-ui:masterfrom
alinecbgml:po-guided-tour/1
Open

feat(guided-tour): adiciona novo componente po-guided-tour com tour interativo#2736
alinecbgml wants to merge 2 commits intopo-ui:masterfrom
alinecbgml:po-guided-tour/1

Conversation

@alinecbgml
Copy link
Copy Markdown

po-guided-tour

Descrição

Adiciona novo componente po-guided-tour que oferece um tour interativo e guiado pela aplicação. Este componente destaca elementos da página com um overlay escurecido, exibe um popover com explicações e oferece controles de navegação.

Features

  • ✨ Destaque de elementos com overlay escurecido
  • 🎯 Popover posicionável com explicações
  • ⬅️➡️ Navegação (próximo, anterior, pular, completar)
  • 🔒 Bloqueio de interações quando necessário
  • 💾 Persistência de estado em localStorage
  • 📊 Barra de progresso visual
  • ♿ Acessibilidade completa (ARIA labels, navegação por teclado)
  • 🎨 Totalmente customizável e responsivo
  • ⚡ OnPush change detection para performance

Arquitetura

Interfaces:

  • PoGuidedTourStep: Define cada passo do tour
  • PoGuidedTourConfig: Configuração geral do tour

Métodos Públicos:

  • start(): Inicia o tour
  • next(): Vai para o próximo passo
  • previous(): Volta para o passo anterior
  • goToStep(index): Vai para um passo específico
  • complete(): Marca como completo
  • cancel(): Cancela sem marcar como completo
  • skipTour(): Marca como "não mostrar novamente"
  • getCurrentStep(): Obtém o passo atual
  • getProgress(): Obtém percentual de progresso

Eventos:

  • p-on-complete: Emitido quando o tour termina
  • p-on-cancel: Emitido quando o tour é cancelado
  • p-on-step-change: Emitido ao mudar de passo

Exemplo de Uso

const tourSteps: PoGuidedTourStep[] = [
  {
    id: 'welcome',
    element: '.welcome-button',
    title: 'Welcome',
    description: 'Click here to get started',
    position: 'bottom',
    blockInteraction: false
  }
];

guidedTour.steps = tourSteps;
guidedTour.start();

Checklist

  • Código seguindo style guide do PO UI
  • Interfaces TypeScript bem definidas
  • Componente com OnPush change detection
  • Documentação em JSDoc
  • Acessibilidade (ARIA)
  • Testes unitários (será adicionado em PR subsequente)
  • Documentação Dgeni (será adicionado em PR subsequente)
  • Sample Labs (será adicionado em PR subsequente)

Notas

Esta é uma implementação base do componente seguindo os padrões do PO UI Design System. As futuras PRs adicionarão testes unitários, documentação completa e exemplos de uso.

Implementa componente po-guided-tour com as seguintes features:

- Destaque de elementos com overlay escurecido
- Popover com explicações e controles de navegação
- Bloqueio de interações quando necessário
- Persistênc ia de estado em localStorage
- Interfaces bem definidas para configuração
- Métodos públicos para controle programado
- OnPush change detection para performance

Seguindo guidelines do PO UI Design System
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant