import { PoSkeletonAnimation } from './enums/po-skeleton-animation.enum'; import { PoSkeletonSize } from './enums/po-skeleton-size.enum'; import { PoSkeletonType } from './enums/po-skeleton-type.enum'; import { PoSkeletonVariant } from './enums/po-skeleton-variant.enum'; /** * @description * * O componente `po-skeleton` é utilizado para exibir placeholders durante o carregamento de conteúdo, * melhorando a experiência do usuário ao indicar que a informação está sendo processada. * * Ele oferece diferentes variantes visuais (texto, retângulo, círculo) e animações (pulse, shimmer) * para simular diversos tipos de conteúdo em estado de carregamento. * * #### Tokens customizáveis * * É possível alterar o estilo do componente usando os seguintes tokens (CSS): * * > Para maiores informações, acesse o guia [Personalizando o Tema Padrão com Tokens CSS](https://po-ui.io/guides/theme-customization). * * | Propriedade | Descrição | Valor Padrão | * |----------------------------------------|------------------------------------------------------|---------------------------------| * | **Cores** | | | * | `--color` | Cor de fundo do skeleton (tipo normal) | `var(--color-neutral-light-20)` | * | `--color-primary` | Cor de fundo do skeleton (tipo primary) | `var(--color-neutral-mid-40)` | * | `--color-content` | Cor de fundo do skeleton (tipo content) | `var(--color-neutral-light-00)` | * | `--shimmer-highlight` | Cor de destaque do shimmer (tipo normal) | `var(--color-neutral-light-30)` | * | `--shimmer-highlight-primary` | Cor de destaque do shimmer (tipo primary) | `var(--color-neutral-light-20)` | * | `--shimmer-highlight-content` | Cor de destaque do shimmer (tipo content) | `var(--color-neutral-light-05)` | * | **Espaçamento** | | | * | `--margin-bottom` | Margem inferior do skeleton | `var(--spacing-xs)` | * | **Bordas** | | | * | `--border-radius` | Raio da borda do skeleton | `var(--border-radius-md)` | * | `--border-radius-text` | Raio da borda para a variante text | `var(--border-radius-md)` | * | `--border-radius-primary` | Raio da borda do skeleton (tipo primary) | `var(--border-radius-md)` | * | `--border-radius-content` | Raio da borda do skeleton (tipo content) | `var(--border-radius-lg)` | * | **Transições** | | | * | `--transition-property` | Propriedade CSS da transição | `all` | * | `--transition-duration` | Duração da transição de cor | `var(--duration-moderate)` | * | `--transition-timing` | Função de temporização da transição/animação | `var(--timing-continuous)` | * | **Animações** | | | * | `--animation-duration-pulse` | Duração da animação de pulsação | `var(--duration-very-slow)` | * | `--animation-duration-shimmer` | Duração da animação de brilho deslizante | `var(--duration-ultra-slow)` | * */ export declare class PoSkeletonBaseComponent { /** * @optional * * @description * * Define a variante visual do skeleton. * * Valores válidos: * - `text`: Simula uma linha de texto (altura padrão: 1em) * - `rectangle`: Forma retangular (proporção 3:1 por padrão) * - `square`: Forma quadrada (largura e altura iguais) * - `circle`: Forma circular (largura e altura iguais) * * @default `text` */ variant: import("@angular/core").InputSignal; /** * @optional * * @description * * Define o tipo visual do skeleton, alterando sua cor de fundo. * * Valores válidos: * - `normal`: Cor neutra clara (padrão) * - `primary`: Cor neutra média * - `content`: Fundo branco * * @default `normal` */ type: import("@angular/core").InputSignal; /** * @optional * * @description * * Define o tipo de animação do skeleton. * * Valores válidos: * - `none`: Sem animação * - `pulse`: Animação de pulsação * - `shimmer`: Animação de brilho deslizante * * @default `shimmer` */ animation: import("@angular/core").InputSignal; /** * @optional * * @description * * Define o tamanho do skeleton para as variantes pré-definidas (`rectangle`, `square`, `circle`). * * Valores válidos: * - `xs`: Extra pequeno (24px para square/circle, 72px x 24px para rectangle) * - `sm`: Pequeno (32px para square/circle, 96px x 32px para rectangle) * - `md`: Médio (48px para square/circle, 144px x 48px para rectangle) * - `lg`: Grande (64px para square/circle, 192px x 64px para rectangle) * - `xl`: Extra grande (96px para square/circle, 288px x 96px para rectangle) * - `2xl`: Extra extra grande (144px para square/circle, 432px x 144px para rectangle) * * Esta propriedade é ignorada quando `p-width` ou `p-height` são definidos explicitamente. * * @default `md` */ size: import("@angular/core").InputSignal; /** * @optional * * @description * * Define a largura do skeleton. * Aceita valores CSS válidos (px, %, em, rem). * * Quando definido, sobrescreve a largura padrão da variante. * * @default `100%` para variante `text`, tamanho baseado em `p-size` para outras variantes */ width: import("@angular/core").InputSignal; /** * @optional * * @description * * Define a altura do skeleton. * Aceita valores CSS válidos (px, %, em, rem). * * Quando definido, sobrescreve a altura padrão da variante. */ height: import("@angular/core").InputSignal; /** * @optional * * @description * * Define o raio da borda do skeleton. * Aceita valores CSS válidos (px, %, em, rem). * * Esta propriedade sobrescreve o border-radius padrão de cada variante. */ borderRadius: import("@angular/core").InputSignal; /** * @optional * * @description * * Define a descrição acessível do conteúdo que está sendo carregado. * * Este texto será anunciado por leitores de tela, garantindo que usuários de tecnologias assistivas * sejam informados sobre o estado de carregamento. * * **Quando usar:** * - Use em **skeletons únicos** ou no **primeiro skeleton de um grupo** com descrição contextual * - Evite usar em múltiplos skeletons dentro da mesma área sem contexto, para não causar repetição excessiva * * **Exemplos de uso:** * * ```html * * * * * * * * * * * * * ``` * * > **Boas práticas de acessibilidade:** * > - Forneça contexto específico na label para que os usuários entendam o que está carregando * * > - Em casos complexos, considere usar um único `
` para todo o grupo * > de skeletons, ao invés de múltiplas labels idênticas, para evitar repetição excessiva de anúncios */ ariaLabel: import("@angular/core").InputSignal; }