@govbr-ds/webcomponents 2.0.0-next.46 → 2.0.0-next.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/br-avatar.cjs.entry.js +2 -2
- package/dist/cjs/br-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/br-button_2.cjs.entry.js +1 -1
- package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/br-sign-in.cjs.entry.js +109 -0
- package/dist/cjs/br-sign-in.cjs.entry.js.map +1 -0
- package/dist/cjs/br-sign-in.entry.cjs.js.map +1 -0
- package/dist/cjs/br-step-item.cjs.entry.js +1 -1
- package/dist/cjs/br-step.cjs.entry.js +1 -1
- package/dist/cjs/br-switch.cjs.entry.js +28 -2
- package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tab-item.cjs.entry.js +1 -1
- package/dist/cjs/br-tab.cjs.entry.js +1 -1
- package/dist/cjs/br-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/br-table-header-cell.cjs.entry.js +1 -1
- package/dist/cjs/br-table-header-row.cjs.entry.js +1 -1
- package/dist/cjs/br-table-row.cjs.entry.js +1 -1
- package/dist/cjs/br-table.cjs.entry.js +1 -1
- package/dist/cjs/br-tag.cjs.entry.js +151 -13
- package/dist/cjs/br-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/br-tag.entry.cjs.js.map +1 -1
- package/dist/cjs/br-textarea.cjs.entry.js +32 -5
- package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/br-upload.cjs.entry.js +15 -23
- package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
- package/dist/cjs/index-DNnn1o_9.js +4 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/avatar/avatar.js +1 -1
- package/dist/collection/components/avatar/avatar.js.map +1 -1
- package/dist/collection/components/button/button.js +1 -1
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/sign-in/sign-in.css +1 -0
- package/dist/collection/components/sign-in/sign-in.js +303 -0
- package/dist/collection/components/sign-in/sign-in.js.map +1 -0
- package/dist/collection/components/step/step.js +1 -1
- package/dist/collection/components/step-item/step-item.js +1 -1
- package/dist/collection/components/switch/switch.css +1 -1
- package/dist/collection/components/switch/switch.js +27 -1
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/tab/tab.js +1 -1
- package/dist/collection/components/tab-item/tab-item.js +1 -1
- package/dist/collection/components/table/table.js +1 -1
- package/dist/collection/components/table-cell/table-cell.js +1 -1
- package/dist/collection/components/table-header-cell/table-header-cell.js +1 -1
- package/dist/collection/components/table-header-row/table-header-row.js +1 -1
- package/dist/collection/components/table-row/table-row.js +1 -1
- package/dist/collection/components/tag/tag.css +1 -1
- package/dist/collection/components/tag/tag.js +192 -14
- package/dist/collection/components/tag/tag.js.map +1 -1
- package/dist/collection/components/textarea/textarea.js +51 -5
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/upload/upload.js +46 -30
- package/dist/collection/components/upload/upload.js.map +1 -1
- package/dist/collection/pages/components/sign-in/index.js +18 -0
- package/dist/collection/pages/scripts/menu.js +5 -0
- package/dist/components/br-avatar.js +4 -3
- package/dist/components/br-avatar.js.map +1 -1
- package/dist/components/br-breadcrumb.js +1 -1
- package/dist/components/br-button.js +4 -4
- package/dist/components/br-footer-social.js +1 -1
- package/dist/components/br-input.js +3 -3
- package/dist/components/br-message.js +1 -1
- package/dist/components/br-select.js +2 -2
- package/dist/components/br-sign-in.d.ts +11 -0
- package/dist/components/br-sign-in.js +169 -0
- package/dist/components/br-sign-in.js.map +1 -0
- package/dist/components/br-step-item.js +13 -13
- package/dist/components/br-step.js +3 -3
- package/dist/components/br-switch.js +35 -11
- package/dist/components/br-switch.js.map +1 -1
- package/dist/components/br-tab-item.js +8 -8
- package/dist/components/br-tab.js +6 -6
- package/dist/components/br-table-cell.js +3 -3
- package/dist/components/br-table-header-cell.js +3 -3
- package/dist/components/br-table-header-row.js +3 -3
- package/dist/components/br-table-row.js +3 -3
- package/dist/components/br-table.js +6 -6
- package/dist/components/br-tag.js +166 -51
- package/dist/components/br-tag.js.map +1 -1
- package/dist/components/br-textarea.js +42 -15
- package/dist/components/br-textarea.js.map +1 -1
- package/dist/components/br-tooltip.js +15 -15
- package/dist/components/br-upload.js +56 -58
- package/dist/components/br-upload.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/{p-DZhiQXGc.js → p-Bjt1OWm8.js} +3 -3
- package/dist/components/{p-ssSt5UuQ.js → p-Brhs7qAd.js} +6 -7
- package/dist/components/p-Brhs7qAd.js.map +1 -0
- package/dist/custom-elements.json +551 -9
- package/dist/esm/br-avatar.entry.js +2 -2
- package/dist/esm/br-avatar.entry.js.map +1 -1
- package/dist/esm/br-button.br-icon.entry.js.map +1 -1
- package/dist/esm/br-button_2.entry.js +1 -1
- package/dist/esm/br-button_2.entry.js.map +1 -1
- package/dist/esm/br-sign-in.entry.js +107 -0
- package/dist/esm/br-sign-in.entry.js.map +1 -0
- package/dist/esm/br-step-item.entry.js +1 -1
- package/dist/esm/br-step.entry.js +1 -1
- package/dist/esm/br-switch.entry.js +28 -2
- package/dist/esm/br-switch.entry.js.map +1 -1
- package/dist/esm/br-tab-item.entry.js +1 -1
- package/dist/esm/br-tab.entry.js +1 -1
- package/dist/esm/br-table-cell.entry.js +1 -1
- package/dist/esm/br-table-header-cell.entry.js +1 -1
- package/dist/esm/br-table-header-row.entry.js +1 -1
- package/dist/esm/br-table-row.entry.js +1 -1
- package/dist/esm/br-table.entry.js +1 -1
- package/dist/esm/br-tag.entry.js +151 -13
- package/dist/esm/br-tag.entry.js.map +1 -1
- package/dist/esm/br-textarea.entry.js +32 -5
- package/dist/esm/br-textarea.entry.js.map +1 -1
- package/dist/esm/br-tooltip.entry.js +1 -1
- package/dist/esm/br-upload.entry.js +15 -23
- package/dist/esm/br-upload.entry.js.map +1 -1
- package/dist/esm/index-DmA0bHaX.js +4 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/hydrate/index.js +381 -60
- package/dist/hydrate/index.mjs +381 -60
- package/dist/types/components/sign-in/sign-in.d.ts +69 -0
- package/dist/types/components/switch/switch.d.ts +8 -3
- package/dist/types/components/tag/tag.d.ts +45 -3
- package/dist/types/components/textarea/textarea.d.ts +18 -0
- package/dist/types/components/upload/upload.d.ts +14 -4
- package/dist/types/components.d.ts +157 -6
- package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-sign-in.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-tag.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
- package/dist/webcomponents/{p-df6e707a.entry.js → p-0286bc8b.entry.js} +5 -4
- package/dist/webcomponents/p-0286bc8b.entry.js.map +1 -0
- package/dist/webcomponents/{p-a802ca08.entry.js → p-177edeb5.entry.js} +55 -58
- package/dist/webcomponents/p-177edeb5.entry.js.map +1 -0
- package/dist/webcomponents/{p-761f7798.entry.js → p-1b86e06c.entry.js} +161 -48
- package/dist/webcomponents/p-1b86e06c.entry.js.map +1 -0
- package/dist/webcomponents/p-3af05218.entry.js +133 -0
- package/dist/webcomponents/p-3af05218.entry.js.map +1 -0
- package/dist/webcomponents/{p-bbd38dd7.entry.js → p-3e9e650d.entry.js} +4 -4
- package/dist/webcomponents/{p-fa0aeb0f.entry.js → p-3f18e20a.entry.js} +5 -6
- package/dist/webcomponents/p-3f18e20a.entry.js.map +1 -0
- package/dist/webcomponents/{p-24f6adad.entry.js → p-5e08c9e4.entry.js} +42 -16
- package/dist/webcomponents/p-5e08c9e4.entry.js.map +1 -0
- package/dist/webcomponents/{p-8b15dfc8.entry.js → p-600fe722.entry.js} +10 -10
- package/dist/webcomponents/{p-2a407917.entry.js → p-8f28e933.entry.js} +7 -7
- package/dist/webcomponents/{p-d549a87b.entry.js → p-9480b1aa.entry.js} +4 -4
- package/dist/webcomponents/{p-1d018f30.entry.js → p-9bbb66bd.entry.js} +4 -4
- package/dist/webcomponents/{p-abf81334.entry.js → p-b4dde339.entry.js} +36 -12
- package/dist/webcomponents/p-b4dde339.entry.js.map +1 -0
- package/dist/webcomponents/{p-096b0875.entry.js → p-b72b4850.entry.js} +4 -4
- package/dist/webcomponents/{p-70d4da25.entry.js → p-c9cbb5b3.entry.js} +9 -9
- package/dist/webcomponents/{p-ac4ce40c.entry.js → p-e4d965d4.entry.js} +13 -13
- package/dist/webcomponents/{p-deb094fb.entry.js → p-e7f1afa4.entry.js} +4 -4
- package/dist/webcomponents/{p-f1738ae0.entry.js → p-f883ebf5.entry.js} +7 -7
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/dist/webcomponents.html-custom-data.json +56 -3
- package/package.json +1 -1
- package/dist/components/p-ssSt5UuQ.js.map +0 -1
- package/dist/webcomponents/p-24f6adad.entry.js.map +0 -1
- package/dist/webcomponents/p-761f7798.entry.js.map +0 -1
- package/dist/webcomponents/p-a802ca08.entry.js.map +0 -1
- package/dist/webcomponents/p-abf81334.entry.js.map +0 -1
- package/dist/webcomponents/p-df6e707a.entry.js.map +0 -1
- package/dist/webcomponents/p-fa0aeb0f.entry.js.map +0 -1
- /package/dist/components/{p-DZhiQXGc.js.map → p-Bjt1OWm8.js.map} +0 -0
- /package/dist/webcomponents/{p-bbd38dd7.entry.js.map → p-3e9e650d.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-8b15dfc8.entry.js.map → p-600fe722.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-2a407917.entry.js.map → p-8f28e933.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-d549a87b.entry.js.map → p-9480b1aa.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-1d018f30.entry.js.map → p-9bbb66bd.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-096b0875.entry.js.map → p-b72b4850.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-70d4da25.entry.js.map → p-c9cbb5b3.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-ac4ce40c.entry.js.map → p-e4d965d4.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-deb094fb.entry.js.map → p-e7f1afa4.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-f1738ae0.entry.js.map → p-f883ebf5.entry.js.map} +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/sign-in?tab=designer).
|
|
3
|
+
*
|
|
4
|
+
* Para acessibilidade adequada, especialmente em formatos circulares, use a propriedade aria-label:
|
|
5
|
+
* <br-sign-in shape="circle" aria-label="Fazer login com Gov.br"></br-sign-in>
|
|
6
|
+
*
|
|
7
|
+
* Para controlar onde o link abre, use a propriedade target:
|
|
8
|
+
* <br-sign-in href="https://accounts.google.com" target="_self">Login Google</br-sign-in>
|
|
9
|
+
* <br-sign-in href="https://help.site.com" target="_blank">Ajuda</br-sign-in>
|
|
10
|
+
*
|
|
11
|
+
* @slot default - Conteúdo do label/texto do sign-in
|
|
12
|
+
* @slot icon - Ícone personalizado. Para shape="circle", um ícone padrão (fa6-solid:user) será exibido se nenhum for fornecido
|
|
13
|
+
* @slot image - Imagem ou ícone exibido ao lado da label
|
|
14
|
+
*
|
|
15
|
+
* @part content - Área do conteúdo/texto dentro do sign-in
|
|
16
|
+
* @part image - Área da imagem/ícone (para controle de tamanho via CSS)
|
|
17
|
+
*/
|
|
18
|
+
export declare class SignIn {
|
|
19
|
+
/**
|
|
20
|
+
* Referência ao elemento host do componente.
|
|
21
|
+
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
|
|
22
|
+
*/
|
|
23
|
+
el: HTMLBrSignInElement;
|
|
24
|
+
elementInternals: ElementInternals;
|
|
25
|
+
/**
|
|
26
|
+
* Identificador único.
|
|
27
|
+
* Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
28
|
+
*/
|
|
29
|
+
readonly customId: string;
|
|
30
|
+
/**
|
|
31
|
+
* Define se o sign-in usará um esquema de cores escuro.
|
|
32
|
+
*/
|
|
33
|
+
readonly colorMode: 'dark';
|
|
34
|
+
/**
|
|
35
|
+
* Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.
|
|
36
|
+
*/
|
|
37
|
+
readonly density: 'large' | 'medium' | 'small';
|
|
38
|
+
/**
|
|
39
|
+
* Desativa o sign-in, tornando-o não interativo.
|
|
40
|
+
*/
|
|
41
|
+
readonly disabled: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Define a ênfase do sign-in, alterando sua aparência para criar hierarquia visual.
|
|
44
|
+
*/
|
|
45
|
+
readonly emphasis: 'primary' | 'secondary';
|
|
46
|
+
/**
|
|
47
|
+
* Define o formato do sign-in.
|
|
48
|
+
*/
|
|
49
|
+
readonly shape: 'block' | 'circle' | 'pill';
|
|
50
|
+
/**
|
|
51
|
+
* URL para onde o usuário será redirecionado ao clicar. Use para login com provedores externos ou em sites tradicionais.
|
|
52
|
+
*/
|
|
53
|
+
readonly href: string;
|
|
54
|
+
/**
|
|
55
|
+
* Define onde abrir o link quando href é fornecido.
|
|
56
|
+
*/
|
|
57
|
+
readonly target: '_self' | '_blank' | '_parent' | '_top';
|
|
58
|
+
/**
|
|
59
|
+
* Define o rótulo acessível do sign-in, especialmente importante para formatos circulares.
|
|
60
|
+
*/
|
|
61
|
+
readonly ariaLabel: string;
|
|
62
|
+
private readonly handleClick;
|
|
63
|
+
private readonly handleFocus;
|
|
64
|
+
private hasSlotContent;
|
|
65
|
+
private getCssClassMap;
|
|
66
|
+
private getTagType;
|
|
67
|
+
private getAttributes;
|
|
68
|
+
render(): any;
|
|
69
|
+
}
|
|
@@ -61,20 +61,25 @@ export declare class Switch {
|
|
|
61
61
|
readonly density: 'large' | 'medium' | 'small';
|
|
62
62
|
_slotDefault: boolean;
|
|
63
63
|
componentWillLoad(): void;
|
|
64
|
-
/**
|
|
65
|
-
* Disparado depois que o valor do `checked` foi alterado
|
|
66
|
-
*/
|
|
67
64
|
/**
|
|
68
65
|
* Disparado depois que o valor do `checked` foi alterado
|
|
69
66
|
*/
|
|
70
67
|
checkedChange: EventEmitter<boolean>;
|
|
71
68
|
private _hasSlotContentDefault;
|
|
69
|
+
/**
|
|
70
|
+
* Determina o texto a ser usado para acessibilidade quando não há label visível
|
|
71
|
+
*/
|
|
72
|
+
private getAccessibilityLabel;
|
|
72
73
|
private readonly handleCheckedChange;
|
|
73
74
|
private readonly handleClick;
|
|
74
75
|
/**
|
|
75
76
|
* Inverte o valor da prop `checked`
|
|
76
77
|
*/
|
|
77
78
|
toggleChecked(): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Verifica se o componente tem texto visível (via slot ou label)
|
|
81
|
+
*/
|
|
82
|
+
private hasVisibleText;
|
|
78
83
|
private getCssClassMap;
|
|
79
84
|
render(): any;
|
|
80
85
|
}
|
|
@@ -54,7 +54,8 @@ export declare class Tag {
|
|
|
54
54
|
*/
|
|
55
55
|
readonly shape: 'circle' | 'rounded' | 'default';
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
57
|
+
* Transforma a tag em um indicador de status, com aparência circular.
|
|
58
|
+
* É flexível podendo ser utilizado com label ou apenas a superfície circular (informação é transmitida por meio de cores).
|
|
58
59
|
*/
|
|
59
60
|
readonly status: boolean;
|
|
60
61
|
/**
|
|
@@ -69,6 +70,19 @@ export declare class Tag {
|
|
|
69
70
|
* Tag deve estar desabilitado.
|
|
70
71
|
*/
|
|
71
72
|
readonly disabled: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Rótulo personalizado para leitores de tela.
|
|
75
|
+
* Quando fornecido, substitui completamente o texto visível para usuários de leitores de tela.
|
|
76
|
+
* Útil quando o texto visível não é suficientemente descritivo (ex: ícones, abreviações).
|
|
77
|
+
*/
|
|
78
|
+
readonly ariaLabel: string;
|
|
79
|
+
/**
|
|
80
|
+
* ID do elemento que fornece descrição adicional da tag.
|
|
81
|
+
* Referencia um elemento na página que contém informações complementares sobre a tag.
|
|
82
|
+
* A descrição é lida após o conteúdo principal, fornecendo contexto extra aos usuários de leitores de tela.
|
|
83
|
+
* Exemplo: aria-describedby="help-status" onde existe <div id="help-status">Aguardando aprovação</div>
|
|
84
|
+
*/
|
|
85
|
+
readonly ariaDescribedby: string;
|
|
72
86
|
/**
|
|
73
87
|
* Tag está selecionada.
|
|
74
88
|
*/
|
|
@@ -79,10 +93,35 @@ export declare class Tag {
|
|
|
79
93
|
radioSelected: EventEmitter<string>;
|
|
80
94
|
handleInteractionChange(newValue: boolean): void;
|
|
81
95
|
handleInteractionSelectChange(newValue: boolean): void;
|
|
96
|
+
handleSelectedChange(newValue: boolean): void;
|
|
97
|
+
handleCheckedChange(event: CustomEvent): void;
|
|
82
98
|
componentWillLoad(): void;
|
|
83
99
|
connectedCallback(): void;
|
|
84
|
-
|
|
100
|
+
disconnectedCallback(): void;
|
|
101
|
+
/**
|
|
102
|
+
* Permite navegação por teclado (setas) entre tags do tipo radio (seleção unica).
|
|
103
|
+
* Funciona apenas quando 'interactionSelect' é true e 'multiple' é false.
|
|
104
|
+
* Ignora tags desabilitadas.
|
|
105
|
+
* @param event - Evento de teclado
|
|
106
|
+
*/
|
|
107
|
+
private handleKeyDown;
|
|
108
|
+
private selectNextRadio;
|
|
109
|
+
private selectPreviousRadio;
|
|
110
|
+
private selectRadioByStep;
|
|
111
|
+
private selectRadioByIndex;
|
|
85
112
|
private getCssClassMap;
|
|
113
|
+
private getTagAttributes;
|
|
114
|
+
private getAriaDescribedBy;
|
|
115
|
+
/**
|
|
116
|
+
* Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco).
|
|
117
|
+
* @param value - String a ser verificada
|
|
118
|
+
* @returns {boolean} true se a string possui conteúdo
|
|
119
|
+
*/
|
|
120
|
+
private hasContent;
|
|
121
|
+
private getAriaLabel;
|
|
122
|
+
private getRole;
|
|
123
|
+
private getAriaChecked;
|
|
124
|
+
private getAriaDisabled;
|
|
86
125
|
private renderIcon;
|
|
87
126
|
private renderLabel;
|
|
88
127
|
private renderCloseButton;
|
|
@@ -90,6 +129,9 @@ export declare class Tag {
|
|
|
90
129
|
private handleClose;
|
|
91
130
|
private handleChangeValueChecked;
|
|
92
131
|
private handleChangeRadioValue;
|
|
93
|
-
|
|
132
|
+
private renderMainTagContent;
|
|
133
|
+
private renderStatusLayout;
|
|
134
|
+
private handleInputChange;
|
|
135
|
+
private renderInteractionSelectTag;
|
|
94
136
|
render(): any;
|
|
95
137
|
}
|
|
@@ -20,6 +20,11 @@ export declare class Textarea {
|
|
|
20
20
|
* Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.
|
|
21
21
|
*/
|
|
22
22
|
readonly placeholder: string;
|
|
23
|
+
/**
|
|
24
|
+
* Texto alternativo para acessibilidade quando não há label visível.
|
|
25
|
+
* Fornece um rótulo para tecnologias assistivas sem exibir visualmente.
|
|
26
|
+
*/
|
|
27
|
+
readonly ariaLabel: string;
|
|
23
28
|
/**
|
|
24
29
|
* Identificador único.
|
|
25
30
|
* Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
@@ -65,6 +70,19 @@ export declare class Textarea {
|
|
|
65
70
|
* @param newValue - O novo valor a ser definido.
|
|
66
71
|
*/
|
|
67
72
|
setValue(newValue: string): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Retorna os ids para o atributo aria-describedby do textarea
|
|
75
|
+
*/
|
|
76
|
+
private getDescribedBy;
|
|
77
|
+
/**
|
|
78
|
+
* Determina o texto a ser usado para acessibilidade quando não há label
|
|
79
|
+
* Ordem de prioridade:
|
|
80
|
+
* - aria-label do elemento host
|
|
81
|
+
* - propriedade ariaLabel do componente
|
|
82
|
+
* - placeholder
|
|
83
|
+
* - texto padrão ("Campo de texto")
|
|
84
|
+
*/
|
|
85
|
+
private getAccessibilityLabel;
|
|
68
86
|
private getCssClassMap;
|
|
69
87
|
render(): any;
|
|
70
88
|
}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/upload?tab=designer).
|
|
3
3
|
*
|
|
4
|
-
* @slot default -
|
|
4
|
+
* @slot default - Texto personalizado para o botão de upload. Se não fornecido, será exibido "Selecione o arquivo" como texto padrão.
|
|
5
|
+
* Use este slot para personalizar o texto do botão de acordo com o contexto do upload, por exemplo: "Anexar documentos",
|
|
6
|
+
* "Enviar imagens", etc.
|
|
5
7
|
*/
|
|
6
8
|
export declare class Upload {
|
|
9
|
+
/**
|
|
10
|
+
* Identificador único.
|
|
11
|
+
* Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
12
|
+
*/
|
|
13
|
+
readonly customId: string;
|
|
7
14
|
/**
|
|
8
15
|
* Referência ao elemento host do componente.
|
|
9
16
|
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
|
|
@@ -15,8 +22,11 @@ export declare class Upload {
|
|
|
15
22
|
*/
|
|
16
23
|
accept: string;
|
|
17
24
|
/**
|
|
18
|
-
*
|
|
19
|
-
* Este
|
|
25
|
+
* Rótulo principal do campo de upload.
|
|
26
|
+
* Este texto ajuda usuários de leitores de tela a identificarem o propósito do upload.
|
|
27
|
+
* Exemplos: "Anexar comprovante", "Enviar foto do documento".
|
|
28
|
+
*
|
|
29
|
+
* @default "Envio de arquivo"
|
|
20
30
|
*/
|
|
21
31
|
label: string;
|
|
22
32
|
/**
|
|
@@ -46,7 +56,7 @@ export declare class Upload {
|
|
|
46
56
|
* - 'success': Mensagem de sucesso.
|
|
47
57
|
* O valor padrão é 'info'.
|
|
48
58
|
*/
|
|
49
|
-
state:
|
|
59
|
+
state: 'info' | 'warning' | 'danger' | 'success';
|
|
50
60
|
/**
|
|
51
61
|
* Indica se o componente permite a seleção de múltiplos arquivos.
|
|
52
62
|
* Quando definido como `true`, o usuário pode selecionar mais de um arquivo para upload.
|
|
@@ -975,6 +975,52 @@ export namespace Components {
|
|
|
975
975
|
*/
|
|
976
976
|
"value"?: string | string[];
|
|
977
977
|
}
|
|
978
|
+
/**
|
|
979
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/sign-in?tab=designer).
|
|
980
|
+
* Para acessibilidade adequada, especialmente em formatos circulares, use a propriedade aria-label:
|
|
981
|
+
* <br-sign-in shape="circle" aria-label="Fazer login com Gov.br"></br-sign-in>
|
|
982
|
+
* Para controlar onde o link abre, use a propriedade target:
|
|
983
|
+
* <br-sign-in href="https://accounts.google.com" target="_self">Login Google</br-sign-in>
|
|
984
|
+
* <br-sign-in href="https://help.site.com" target="_blank">Ajuda</br-sign-in>
|
|
985
|
+
*/
|
|
986
|
+
interface BrSignIn {
|
|
987
|
+
/**
|
|
988
|
+
* Define o rótulo acessível do sign-in, especialmente importante para formatos circulares.
|
|
989
|
+
*/
|
|
990
|
+
"ariaLabel": string;
|
|
991
|
+
/**
|
|
992
|
+
* Define se o sign-in usará um esquema de cores escuro.
|
|
993
|
+
*/
|
|
994
|
+
"colorMode": 'dark';
|
|
995
|
+
/**
|
|
996
|
+
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
997
|
+
*/
|
|
998
|
+
"customId": string;
|
|
999
|
+
/**
|
|
1000
|
+
* Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.
|
|
1001
|
+
*/
|
|
1002
|
+
"density": 'large' | 'medium' | 'small';
|
|
1003
|
+
/**
|
|
1004
|
+
* Desativa o sign-in, tornando-o não interativo.
|
|
1005
|
+
*/
|
|
1006
|
+
"disabled": boolean;
|
|
1007
|
+
/**
|
|
1008
|
+
* Define a ênfase do sign-in, alterando sua aparência para criar hierarquia visual.
|
|
1009
|
+
*/
|
|
1010
|
+
"emphasis": 'primary' | 'secondary';
|
|
1011
|
+
/**
|
|
1012
|
+
* URL para onde o usuário será redirecionado ao clicar. Use para login com provedores externos ou em sites tradicionais.
|
|
1013
|
+
*/
|
|
1014
|
+
"href": string;
|
|
1015
|
+
/**
|
|
1016
|
+
* Define o formato do sign-in.
|
|
1017
|
+
*/
|
|
1018
|
+
"shape": 'block' | 'circle' | 'pill';
|
|
1019
|
+
/**
|
|
1020
|
+
* Define onde abrir o link quando href é fornecido.
|
|
1021
|
+
*/
|
|
1022
|
+
"target": '_self' | '_blank' | '_parent' | '_top';
|
|
1023
|
+
}
|
|
978
1024
|
/**
|
|
979
1025
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/step?tab=designer).
|
|
980
1026
|
*/
|
|
@@ -1238,6 +1284,14 @@ export namespace Components {
|
|
|
1238
1284
|
"customId": string;
|
|
1239
1285
|
}
|
|
1240
1286
|
interface BrTag {
|
|
1287
|
+
/**
|
|
1288
|
+
* ID do elemento que fornece descrição adicional da tag. Referencia um elemento na página que contém informações complementares sobre a tag. A descrição é lida após o conteúdo principal, fornecendo contexto extra aos usuários de leitores de tela. Exemplo: aria-describedby="help-status" onde existe <div id="help-status">Aguardando aprovação</div>
|
|
1289
|
+
*/
|
|
1290
|
+
"ariaDescribedby": string;
|
|
1291
|
+
/**
|
|
1292
|
+
* Rótulo personalizado para leitores de tela. Quando fornecido, substitui completamente o texto visível para usuários de leitores de tela. Útil quando o texto visível não é suficientemente descritivo (ex: ícones, abreviações).
|
|
1293
|
+
*/
|
|
1294
|
+
"ariaLabel": string;
|
|
1241
1295
|
/**
|
|
1242
1296
|
* A propriedade 'color' permite definir a cor do componente. Aceita valores como 'red', 'blue', entre outros, e é refletida no DOM.
|
|
1243
1297
|
*/
|
|
@@ -1287,7 +1341,7 @@ export namespace Components {
|
|
|
1287
1341
|
*/
|
|
1288
1342
|
"shape": 'circle' | 'rounded' | 'default';
|
|
1289
1343
|
/**
|
|
1290
|
-
*
|
|
1344
|
+
* Transforma a tag em um indicador de status, com aparência circular. É flexível podendo ser utilizado com label ou apenas a superfície circular (informação é transmitida por meio de cores).
|
|
1291
1345
|
*/
|
|
1292
1346
|
"status": boolean;
|
|
1293
1347
|
}
|
|
@@ -1295,6 +1349,10 @@ export namespace Components {
|
|
|
1295
1349
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/textarea?tab=designer).
|
|
1296
1350
|
*/
|
|
1297
1351
|
interface BrTextarea {
|
|
1352
|
+
/**
|
|
1353
|
+
* Texto alternativo para acessibilidade quando não há label visível. Fornece um rótulo para tecnologias assistivas sem exibir visualmente.
|
|
1354
|
+
*/
|
|
1355
|
+
"ariaLabel": string;
|
|
1298
1356
|
/**
|
|
1299
1357
|
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
1300
1358
|
*/
|
|
@@ -1393,12 +1451,17 @@ export namespace Components {
|
|
|
1393
1451
|
* Tipos de arquivo permitidos (ex: 'image/*'). Esta propriedade define quais tipos de arquivos podem ser selecionados para upload.
|
|
1394
1452
|
*/
|
|
1395
1453
|
"accept": string;
|
|
1454
|
+
/**
|
|
1455
|
+
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
1456
|
+
*/
|
|
1457
|
+
"customId": string;
|
|
1396
1458
|
/**
|
|
1397
1459
|
* Indica se o componente está desativado. Quando definido como `true`, o campo de upload se torna não interativo, impedindo que o usuário selecione ou envie arquivos. Isso é útil para controlar a interação do usuário em situações específicas, como durante o carregamento de dados ou quando o formulário está em um estado inválido.
|
|
1398
1460
|
*/
|
|
1399
1461
|
"disabled": boolean;
|
|
1400
1462
|
/**
|
|
1401
|
-
*
|
|
1463
|
+
* Rótulo principal do campo de upload. Este texto ajuda usuários de leitores de tela a identificarem o propósito do upload. Exemplos: "Anexar comprovante", "Enviar foto do documento".
|
|
1464
|
+
* @default "Envio de arquivo"
|
|
1402
1465
|
*/
|
|
1403
1466
|
"label": string;
|
|
1404
1467
|
/**
|
|
@@ -1408,7 +1471,7 @@ export namespace Components {
|
|
|
1408
1471
|
/**
|
|
1409
1472
|
* Define o estado visual da mensagem. Os possíveis valores são: - 'info': Mensagem informativa. - 'warning': Mensagem de aviso. - 'danger': Mensagem de erro ou alerta. - 'success': Mensagem de sucesso. O valor padrão é 'info'.
|
|
1410
1473
|
*/
|
|
1411
|
-
"state":
|
|
1474
|
+
"state": 'info' | 'warning' | 'danger' | 'success';
|
|
1412
1475
|
}
|
|
1413
1476
|
}
|
|
1414
1477
|
export interface BrCheckboxCustomEvent<T> extends CustomEvent<T> {
|
|
@@ -1857,6 +1920,20 @@ declare global {
|
|
|
1857
1920
|
prototype: HTMLBrSelectElement;
|
|
1858
1921
|
new (): HTMLBrSelectElement;
|
|
1859
1922
|
};
|
|
1923
|
+
/**
|
|
1924
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/sign-in?tab=designer).
|
|
1925
|
+
* Para acessibilidade adequada, especialmente em formatos circulares, use a propriedade aria-label:
|
|
1926
|
+
* <br-sign-in shape="circle" aria-label="Fazer login com Gov.br"></br-sign-in>
|
|
1927
|
+
* Para controlar onde o link abre, use a propriedade target:
|
|
1928
|
+
* <br-sign-in href="https://accounts.google.com" target="_self">Login Google</br-sign-in>
|
|
1929
|
+
* <br-sign-in href="https://help.site.com" target="_blank">Ajuda</br-sign-in>
|
|
1930
|
+
*/
|
|
1931
|
+
interface HTMLBrSignInElement extends Components.BrSignIn, HTMLStencilElement {
|
|
1932
|
+
}
|
|
1933
|
+
var HTMLBrSignInElement: {
|
|
1934
|
+
prototype: HTMLBrSignInElement;
|
|
1935
|
+
new (): HTMLBrSignInElement;
|
|
1936
|
+
};
|
|
1860
1937
|
interface HTMLBrStepElementEventMap {
|
|
1861
1938
|
"brDidLoad": void;
|
|
1862
1939
|
"brWilLoad": void;
|
|
@@ -2109,6 +2186,7 @@ declare global {
|
|
|
2109
2186
|
"br-radio": HTMLBrRadioElement;
|
|
2110
2187
|
"br-scrim": HTMLBrScrimElement;
|
|
2111
2188
|
"br-select": HTMLBrSelectElement;
|
|
2189
|
+
"br-sign-in": HTMLBrSignInElement;
|
|
2112
2190
|
"br-step": HTMLBrStepElement;
|
|
2113
2191
|
"br-step-item": HTMLBrStepItemElement;
|
|
2114
2192
|
"br-switch": HTMLBrSwitchElement;
|
|
@@ -3086,6 +3164,52 @@ declare namespace LocalJSX {
|
|
|
3086
3164
|
*/
|
|
3087
3165
|
"value"?: string | string[];
|
|
3088
3166
|
}
|
|
3167
|
+
/**
|
|
3168
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/sign-in?tab=designer).
|
|
3169
|
+
* Para acessibilidade adequada, especialmente em formatos circulares, use a propriedade aria-label:
|
|
3170
|
+
* <br-sign-in shape="circle" aria-label="Fazer login com Gov.br"></br-sign-in>
|
|
3171
|
+
* Para controlar onde o link abre, use a propriedade target:
|
|
3172
|
+
* <br-sign-in href="https://accounts.google.com" target="_self">Login Google</br-sign-in>
|
|
3173
|
+
* <br-sign-in href="https://help.site.com" target="_blank">Ajuda</br-sign-in>
|
|
3174
|
+
*/
|
|
3175
|
+
interface BrSignIn {
|
|
3176
|
+
/**
|
|
3177
|
+
* Define o rótulo acessível do sign-in, especialmente importante para formatos circulares.
|
|
3178
|
+
*/
|
|
3179
|
+
"ariaLabel"?: string;
|
|
3180
|
+
/**
|
|
3181
|
+
* Define se o sign-in usará um esquema de cores escuro.
|
|
3182
|
+
*/
|
|
3183
|
+
"colorMode"?: 'dark';
|
|
3184
|
+
/**
|
|
3185
|
+
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
3186
|
+
*/
|
|
3187
|
+
"customId"?: string;
|
|
3188
|
+
/**
|
|
3189
|
+
* Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.
|
|
3190
|
+
*/
|
|
3191
|
+
"density"?: 'large' | 'medium' | 'small';
|
|
3192
|
+
/**
|
|
3193
|
+
* Desativa o sign-in, tornando-o não interativo.
|
|
3194
|
+
*/
|
|
3195
|
+
"disabled"?: boolean;
|
|
3196
|
+
/**
|
|
3197
|
+
* Define a ênfase do sign-in, alterando sua aparência para criar hierarquia visual.
|
|
3198
|
+
*/
|
|
3199
|
+
"emphasis"?: 'primary' | 'secondary';
|
|
3200
|
+
/**
|
|
3201
|
+
* URL para onde o usuário será redirecionado ao clicar. Use para login com provedores externos ou em sites tradicionais.
|
|
3202
|
+
*/
|
|
3203
|
+
"href"?: string;
|
|
3204
|
+
/**
|
|
3205
|
+
* Define o formato do sign-in.
|
|
3206
|
+
*/
|
|
3207
|
+
"shape"?: 'block' | 'circle' | 'pill';
|
|
3208
|
+
/**
|
|
3209
|
+
* Define onde abrir o link quando href é fornecido.
|
|
3210
|
+
*/
|
|
3211
|
+
"target"?: '_self' | '_blank' | '_parent' | '_top';
|
|
3212
|
+
}
|
|
3089
3213
|
/**
|
|
3090
3214
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/step?tab=designer).
|
|
3091
3215
|
*/
|
|
@@ -3341,6 +3465,14 @@ declare namespace LocalJSX {
|
|
|
3341
3465
|
"customId"?: string;
|
|
3342
3466
|
}
|
|
3343
3467
|
interface BrTag {
|
|
3468
|
+
/**
|
|
3469
|
+
* ID do elemento que fornece descrição adicional da tag. Referencia um elemento na página que contém informações complementares sobre a tag. A descrição é lida após o conteúdo principal, fornecendo contexto extra aos usuários de leitores de tela. Exemplo: aria-describedby="help-status" onde existe <div id="help-status">Aguardando aprovação</div>
|
|
3470
|
+
*/
|
|
3471
|
+
"ariaDescribedby"?: string;
|
|
3472
|
+
/**
|
|
3473
|
+
* Rótulo personalizado para leitores de tela. Quando fornecido, substitui completamente o texto visível para usuários de leitores de tela. Útil quando o texto visível não é suficientemente descritivo (ex: ícones, abreviações).
|
|
3474
|
+
*/
|
|
3475
|
+
"ariaLabel"?: string;
|
|
3344
3476
|
/**
|
|
3345
3477
|
* A propriedade 'color' permite definir a cor do componente. Aceita valores como 'red', 'blue', entre outros, e é refletida no DOM.
|
|
3346
3478
|
*/
|
|
@@ -3394,7 +3526,7 @@ declare namespace LocalJSX {
|
|
|
3394
3526
|
*/
|
|
3395
3527
|
"shape"?: 'circle' | 'rounded' | 'default';
|
|
3396
3528
|
/**
|
|
3397
|
-
*
|
|
3529
|
+
* Transforma a tag em um indicador de status, com aparência circular. É flexível podendo ser utilizado com label ou apenas a superfície circular (informação é transmitida por meio de cores).
|
|
3398
3530
|
*/
|
|
3399
3531
|
"status"?: boolean;
|
|
3400
3532
|
}
|
|
@@ -3402,6 +3534,10 @@ declare namespace LocalJSX {
|
|
|
3402
3534
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/textarea?tab=designer).
|
|
3403
3535
|
*/
|
|
3404
3536
|
interface BrTextarea {
|
|
3537
|
+
/**
|
|
3538
|
+
* Texto alternativo para acessibilidade quando não há label visível. Fornece um rótulo para tecnologias assistivas sem exibir visualmente.
|
|
3539
|
+
*/
|
|
3540
|
+
"ariaLabel"?: string;
|
|
3405
3541
|
/**
|
|
3406
3542
|
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
3407
3543
|
*/
|
|
@@ -3507,12 +3643,17 @@ declare namespace LocalJSX {
|
|
|
3507
3643
|
* Tipos de arquivo permitidos (ex: 'image/*'). Esta propriedade define quais tipos de arquivos podem ser selecionados para upload.
|
|
3508
3644
|
*/
|
|
3509
3645
|
"accept"?: string;
|
|
3646
|
+
/**
|
|
3647
|
+
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
3648
|
+
*/
|
|
3649
|
+
"customId"?: string;
|
|
3510
3650
|
/**
|
|
3511
3651
|
* Indica se o componente está desativado. Quando definido como `true`, o campo de upload se torna não interativo, impedindo que o usuário selecione ou envie arquivos. Isso é útil para controlar a interação do usuário em situações específicas, como durante o carregamento de dados ou quando o formulário está em um estado inválido.
|
|
3512
3652
|
*/
|
|
3513
3653
|
"disabled"?: boolean;
|
|
3514
3654
|
/**
|
|
3515
|
-
*
|
|
3655
|
+
* Rótulo principal do campo de upload. Este texto ajuda usuários de leitores de tela a identificarem o propósito do upload. Exemplos: "Anexar comprovante", "Enviar foto do documento".
|
|
3656
|
+
* @default "Envio de arquivo"
|
|
3516
3657
|
*/
|
|
3517
3658
|
"label"?: string;
|
|
3518
3659
|
/**
|
|
@@ -3522,7 +3663,7 @@ declare namespace LocalJSX {
|
|
|
3522
3663
|
/**
|
|
3523
3664
|
* Define o estado visual da mensagem. Os possíveis valores são: - 'info': Mensagem informativa. - 'warning': Mensagem de aviso. - 'danger': Mensagem de erro ou alerta. - 'success': Mensagem de sucesso. O valor padrão é 'info'.
|
|
3524
3665
|
*/
|
|
3525
|
-
"state"?:
|
|
3666
|
+
"state"?: 'info' | 'warning' | 'danger' | 'success';
|
|
3526
3667
|
}
|
|
3527
3668
|
interface IntrinsicElements {
|
|
3528
3669
|
"br-avatar": BrAvatar;
|
|
@@ -3550,6 +3691,7 @@ declare namespace LocalJSX {
|
|
|
3550
3691
|
"br-radio": BrRadio;
|
|
3551
3692
|
"br-scrim": BrScrim;
|
|
3552
3693
|
"br-select": BrSelect;
|
|
3694
|
+
"br-sign-in": BrSignIn;
|
|
3553
3695
|
"br-step": BrStep;
|
|
3554
3696
|
"br-step-item": BrStepItem;
|
|
3555
3697
|
"br-switch": BrSwitch;
|
|
@@ -3715,6 +3857,15 @@ declare module "@stencil/core" {
|
|
|
3715
3857
|
*/
|
|
3716
3858
|
"br-scrim": LocalJSX.BrScrim & JSXBase.HTMLAttributes<HTMLBrScrimElement>;
|
|
3717
3859
|
"br-select": LocalJSX.BrSelect & JSXBase.HTMLAttributes<HTMLBrSelectElement>;
|
|
3860
|
+
/**
|
|
3861
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/sign-in?tab=designer).
|
|
3862
|
+
* Para acessibilidade adequada, especialmente em formatos circulares, use a propriedade aria-label:
|
|
3863
|
+
* <br-sign-in shape="circle" aria-label="Fazer login com Gov.br"></br-sign-in>
|
|
3864
|
+
* Para controlar onde o link abre, use a propriedade target:
|
|
3865
|
+
* <br-sign-in href="https://accounts.google.com" target="_self">Login Google</br-sign-in>
|
|
3866
|
+
* <br-sign-in href="https://help.site.com" target="_blank">Ajuda</br-sign-in>
|
|
3867
|
+
*/
|
|
3868
|
+
"br-sign-in": LocalJSX.BrSignIn & JSXBase.HTMLAttributes<HTMLBrSignInElement>;
|
|
3718
3869
|
/**
|
|
3719
3870
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/step?tab=designer).
|
|
3720
3871
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-avatar.entry.esm.js","sources":["../../packages/webcomponents/src/components/avatar/avatar.scss?tag=br-avatar&encapsulation=shadow","../../packages/webcomponents/src/components/avatar/avatar.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/avatar/avatar\";\n\n:host {\n display: inline-block;\n --avatar-text-background-color: var(--blue-10);\n}\n\n.br-avatar .content.text-pure-0 {\n background-color: var(--avatar-text-background-color) !important;\n}\n\n.avatar-icon {\n margin-top: 0.39em;\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/avatar?tab=designer).\n */\n@Component({\n tag: 'br-avatar',\n styleUrl: 'avatar.scss',\n shadow: true,\n})\nexport class Avatar {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrAvatarElement\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ mutable: true }) density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-avatar-${avatarId++}`\n\n /**\n * URL da imagem a ser exibida no avatar do tipo 'fotográfico'.\n * Deve ser uma URL válida que aponta para a imagem desejada.\n */\n @Prop() readonly src: string\n\n /**\n * Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade.\n * Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: \"Foto de perfil de João Silva\".\n */\n @Prop() readonly alt = 'Foto de perfil do usuário'\n\n /**\n * Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem).\n * Útil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.\n */\n @Prop() readonly isIconic: boolean = false\n\n /**\n * Conteúdo textual do avatar.\n * Apenas o primeiro caractere será exibido em maiúscula.\n */\n @Prop() readonly text: string\n\n /**\n * Define se o avatar está desabilitado\n */\n @Prop() readonly disabled = false\n\n /**\n * Cor de fundo personalizada para o avatar do tipo texto\n */\n @Prop() readonly textBackgroundColor: string\n\n @State() private hasError = false\n\n /**\n * Observa mudanças na propriedade density para validação e sincronização com atributo DOM.\n * Garante que apenas valores válidos sejam aceitos e atualiza o atributo no elemento host.\n */\n @Watch('density')\n handleDensityChange(newValue: 'small' | 'medium' | 'large') {\n if (!['small', 'medium', 'large'].includes(newValue)) {\n console.warn(`Valor inválido para density: ${newValue}. Usando 'medium'.`)\n this.density = 'medium'\n }\n this.el.setAttribute('density', this.density)\n }\n\n componentWillLoad() {\n this.handleDensityChange(this.density)\n this.setCustomBackgroundColor()\n }\n\n componentDidUpdate() {\n this.setCustomBackgroundColor()\n }\n\n /**\n * Gera um mapa de classes CSS com base nas propriedades do componente.\n * @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-avatar': true,\n [this.density]: true,\n error: this.hasError,\n disabled: this.disabled,\n }\n }\n\n /**\n * Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco).\n * @param value - String a ser verificada\n * @returns {boolean} true se a string possui conteúdo\n */\n private hasContent(value: string): boolean {\n return value?.trim().length > 0\n }\n\n private readonly handleImageError = () => {\n this.hasError = true\n console.error(`Erro ao carregar imagem do avatar: ${this.src}`)\n }\n\n /**\n * Obtém as classes CSS para o elemento content.\n * @returns {string} Classes CSS do content\n */\n private getContentClasses(): string {\n if (this.hasContent(this.text) && !this.isIconic) {\n return 'content text-pure-0'\n }\n return 'content'\n }\n\n /**\n * Define a variável CSS para cor de fundo personalizada para o avatar texto.\n */\n private setCustomBackgroundColor() {\n if (this.hasContent(this.textBackgroundColor)) {\n this.el.style.setProperty('--avatar-text-background-color', this.textBackgroundColor)\n }\n }\n\n /**\n * Gera aria-label apropriado baseado no tipo de avatar\n * Prioriza aria-label do host, senão gera automaticamente\n */\n private getAriaLabel(): string {\n const hostAriaLabel = this.el.getAttribute('aria-label')\n if (this.hasContent(hostAriaLabel)) {\n return hostAriaLabel\n }\n\n if (this.hasContent(this.text) && !this.isIconic) {\n return `Avatar de ${this.text}`\n }\n\n if (this.hasContent(this.src) && !this.hasError) {\n return this.alt\n }\n\n return 'Avatar com ícone padrão de usuário'\n }\n\n /**\n * Obtém o valor do token do DS para altura do ícone\n */\n private getIconSize(): string {\n const tokenName = `--icon-size-${this.density === 'small' ? '2x' : this.density === 'medium' ? '5x' : '8x'}`\n return getComputedStyle(this.el).getPropertyValue(tokenName).trim()\n }\n\n /**\n * Obtém o valor do token do DS para largura do ícone (altura + 8px)\n */\n private getIconWidth(): string {\n const baseSize = this.getIconSize()\n const numericValue = parseInt(baseSize.replace('px', ''))\n return `${numericValue + 8}px`\n }\n\n /**\n * Renderiza o avatar do tipo 'letra/texto'.\n * Exibe a primeira letra do texto em maiúscula.\n */\n private renderTextAvatar() {\n return this.text[0].toUpperCase()\n }\n\n /**\n * Renderiza o avatar do tipo 'fotográfico/imagem'.\n * Exibe uma imagem carregada via URL.\n */\n private renderImageAvatar() {\n return <img src={this.src} alt={this.alt} loading=\"lazy\" onError={this.handleImageError} />\n }\n\n /**\n * Renderiza o avatar do tipo 'icônico'.\n * Exibe um ícone padrão (fa-solid:user) posicionado na base do avatar.\n */\n private renderIconAvatar() {\n return (\n <br-icon\n icon-name=\"fa-solid:user\"\n height={this.getIconSize()}\n width={this.getIconWidth()}\n aria-hidden=\"true\"\n class=\"avatar-icon\"\n ></br-icon>\n )\n }\n\n /**\n * Método principal de renderização do avatar.\n * Prioridade: isIconic > texto > imagem > ícone (padrão)\n */\n private renderAvatar() {\n if (this.isIconic) {\n return this.renderIconAvatar()\n }\n\n if (this.hasContent(this.text)) {\n return this.renderTextAvatar()\n }\n\n if (this.hasContent(this.src) && !this.hasError) {\n return this.renderImageAvatar()\n }\n\n return this.renderIconAvatar()\n }\n\n render() {\n return (\n <Host>\n <span id={this.customId} class={this.getCssClassMap()} aria-label={this.getAriaLabel()}>\n <span class={this.getContentClasses()}>{this.renderAvatar()}</span>\n </span>\n </Host>\n )\n }\n}\n\nlet avatarId = 0\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-avatar.entry.esm.js","sources":["../../packages/webcomponents/src/components/avatar/avatar.scss?tag=br-avatar&encapsulation=shadow","../../packages/webcomponents/src/components/avatar/avatar.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/avatar/avatar\";\n\n:host {\n display: inline-block;\n --avatar-text-background-color: var(--blue-10);\n}\n\n.br-avatar .content.text-pure-0 {\n background-color: var(--avatar-text-background-color) !important;\n}\n\n.avatar-icon {\n margin-top: 0.39em;\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/avatar?tab=designer).\n */\n@Component({\n tag: 'br-avatar',\n styleUrl: 'avatar.scss',\n shadow: true,\n})\nexport class Avatar {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrAvatarElement\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ mutable: true }) density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-avatar-${avatarId++}`\n\n /**\n * URL da imagem a ser exibida no avatar do tipo 'fotográfico'.\n * Deve ser uma URL válida que aponta para a imagem desejada.\n */\n @Prop() readonly src: string\n\n /**\n * Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade.\n * Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: \"Foto de perfil de João Silva\".\n */\n @Prop() readonly alt = 'Foto de perfil do usuário'\n\n /**\n * Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem).\n * Útil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.\n */\n @Prop() readonly isIconic: boolean = false\n\n /**\n * Conteúdo textual do avatar.\n * Apenas o primeiro caractere será exibido em maiúscula.\n */\n @Prop() readonly text: string\n\n /**\n * Define se o avatar está desabilitado\n */\n @Prop() readonly disabled = false\n\n /**\n * Cor de fundo personalizada para o avatar do tipo texto\n */\n @Prop() readonly textBackgroundColor: string\n\n @State() private hasError = false\n\n /**\n * Observa mudanças na propriedade density para validação e sincronização com atributo DOM.\n * Garante que apenas valores válidos sejam aceitos e atualiza o atributo no elemento host.\n */\n @Watch('density')\n handleDensityChange(newValue: 'small' | 'medium' | 'large') {\n if (!['small', 'medium', 'large'].includes(newValue)) {\n console.warn(`Valor inválido para density: ${newValue}. Usando 'medium'.`)\n this.density = 'medium'\n }\n this.el.setAttribute('density', this.density)\n }\n\n componentWillLoad() {\n this.handleDensityChange(this.density)\n this.setCustomBackgroundColor()\n }\n\n componentDidUpdate() {\n this.setCustomBackgroundColor()\n }\n\n /**\n * Gera um mapa de classes CSS com base nas propriedades do componente.\n * @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-avatar': true,\n [this.density]: true,\n error: this.hasError,\n disabled: this.disabled,\n }\n }\n\n /**\n * Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco).\n * @param value - String a ser verificada\n * @returns {boolean} true se a string possui conteúdo\n */\n private hasContent(value: string): boolean {\n return value?.trim().length > 0\n }\n\n private readonly handleImageError = () => {\n this.hasError = true\n console.error(`Erro ao carregar imagem do avatar: ${this.src}`)\n }\n\n /**\n * Obtém as classes CSS para o elemento content.\n * @returns {string} Classes CSS do content\n */\n private getContentClasses(): string {\n if (this.hasContent(this.text) && !this.isIconic) {\n return 'content text-pure-0'\n }\n return 'content'\n }\n\n /**\n * Define a variável CSS para cor de fundo personalizada para o avatar texto.\n */\n private setCustomBackgroundColor() {\n if (this.hasContent(this.textBackgroundColor)) {\n this.el.style.setProperty('--avatar-text-background-color', this.textBackgroundColor)\n }\n }\n\n /**\n * Gera aria-label apropriado baseado no tipo de avatar\n * Prioriza aria-label do host, senão gera automaticamente\n */\n private getAriaLabel(): string {\n const hostAriaLabel = this.el.getAttribute('aria-label')\n if (this.hasContent(hostAriaLabel)) {\n return hostAriaLabel\n }\n\n if (this.hasContent(this.text) && !this.isIconic) {\n return `Avatar de ${this.text}`\n }\n\n if (this.hasContent(this.src) && !this.hasError) {\n return this.alt\n }\n\n return 'Avatar com ícone padrão de usuário'\n }\n\n /**\n * Obtém o valor do token do DS para altura do ícone\n */\n private getIconSize(): string {\n const tokenName = `--icon-size-${this.density === 'small' ? '2x' : this.density === 'medium' ? '5x' : '8x'}`\n return getComputedStyle(this.el).getPropertyValue(tokenName).trim()\n }\n\n /**\n * Obtém o valor do token do DS para largura do ícone (altura + 8px)\n */\n private getIconWidth(): string {\n const baseSize = this.getIconSize()\n const numericValue = parseInt(baseSize.replace('px', ''))\n return `${numericValue + 8}px`\n }\n\n /**\n * Renderiza o avatar do tipo 'letra/texto'.\n * Exibe a primeira letra do texto em maiúscula.\n */\n private renderTextAvatar() {\n return this.text[0].toUpperCase()\n }\n\n /**\n * Renderiza o avatar do tipo 'fotográfico/imagem'.\n * Exibe uma imagem carregada via URL.\n */\n private renderImageAvatar() {\n return <img src={this.src} alt={this.alt} loading=\"lazy\" onError={this.handleImageError} />\n }\n\n /**\n * Renderiza o avatar do tipo 'icônico'.\n * Exibe um ícone padrão (fa-solid:user) posicionado na base do avatar.\n */\n private renderIconAvatar() {\n return (\n <br-icon\n icon-name=\"fa-solid:user\"\n height={this.getIconSize()}\n width={this.getIconWidth()}\n aria-hidden=\"true\"\n class=\"avatar-icon\"\n ></br-icon>\n )\n }\n\n /**\n * Método principal de renderização do avatar.\n * Prioridade: isIconic > texto > imagem > ícone (padrão)\n */\n private renderAvatar() {\n if (this.isIconic) {\n return this.renderIconAvatar()\n }\n\n if (this.hasContent(this.text)) {\n return this.renderTextAvatar()\n }\n\n if (this.hasContent(this.src) && !this.hasError) {\n return this.renderImageAvatar()\n }\n\n return this.renderIconAvatar()\n }\n\n render() {\n return (\n <Host>\n <span id={this.customId} class={this.getCssClassMap()} role=\"img\" aria-label={this.getAriaLabel()}>\n <span class={this.getContentClasses()}>{this.renderAvatar()}</span>\n </span>\n </Host>\n )\n }\n}\n\nlet avatarId = 0\n"],"names":[],"mappings":"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"}
|