Sobre o projeto

Bubbles fornece uma coleção de primitivos reutilizáveis para construir interfaces de usuário de terminal (TUI) com o framework Bubble Tea em Go. Os componentes são usados em produção no Charm's Crush e em muitas outras aplicações, e o projeto é licenciado sob MIT como parte do ecossistema Charm. Componentes incluídos: - Spinner: indicadores animados para operações em andamento, com várias predefinições e suporte a quadros personalizados. - Text Input: um campo de entrada de linha única comparável a um input de texto HTML, suportando Unicode, colar, rolagem horizontal in-place quando o valor excede a largura do elemento e extensa personalização. - Text Area: uma entrada multilinha comparável a um textarea HTML, com suporte a Unicode e colar, além de rolagem vertical quando o conteúdo excede as dimensões do elemento. - Table: exibe e navega por dados tabulares em colunas e linhas, com rolagem vertical e opções de personalização. - Progress: um medidor de progresso personalizável com animação opcional via Harmonica, preenchimentos sólidos ou em gradiente, runas configuráveis para preenchido/vazio e uma leitura opcional de porcentagem. - Paginator: lida com a lógica de paginação e pode opcionalmente renderizar a UI de paginação, suportando indicadores de página estilo ponto (como iOS) e numéricos; a lógica também pode ser combinada com visualizações personalizadas. - Viewport: área de conteúdo com rolagem vertical, com vinculações de teclas de paginador padrão opcionais e suporte à roda do mouse, além de um modo de alto desempenho para apps que usam o buffer de tela alternativo. Combina bem com Reflow para indentação e quebra de linha conscientes de ANSI. - List: um componente completo para navegar conjuntos de itens, apresentando paginação, filtragem fuzzy, ajuda gerada automaticamente, um spinner de atividade e mensagens de status, cada um dos quais pode ser ativado ou desativado. Originalmente extrapolado do Glow. - File Picker: navega por diretórios e seleciona arquivos, com filtragem opcional por extensão de arquivo. - Timer and Stopwatch: componentes flexíveis de contagem regressiva e contagem crescente com frequência de atualização e saída personalizáveis. - Help: uma mini vista de ajuda horizontal gerada automaticamente a partir das vinculações de teclas, com modos de linha única e multilinha e truncamento gracioso em terminais estreitos. - Key: um componente não visual para gerenciar vinculações de teclas, permitindo remapeamento pelo usuário e geração de vistas de ajuda vinculadas a essas teclas. O projeto oferece um guia de atualização para migração da v1, links para código de exemplo para cada componente no diretório de exemplos do Bubble Tea e aponta para uma coleção mantida pela comunidade de bubbles adicionais (Charm & Friends) que aceita contribuições. Os canais de feedback incluem Twitter, Fediverse e Discord.