@govbr-ds/webcomponents 2.0.0-next.41 → 2.0.0-next.42

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.
Files changed (102) hide show
  1. package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
  2. package/dist/cjs/br-button_2.cjs.entry.js +21 -2
  3. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
  4. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
  5. package/dist/cjs/br-collapse_2.cjs.entry.js +1 -1
  6. package/dist/cjs/br-collapse_2.cjs.entry.js.map +1 -1
  7. package/dist/cjs/br-dropdown.cjs.entry.js +324 -10
  8. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
  9. package/dist/cjs/br-dropdown.entry.cjs.js.map +1 -1
  10. package/dist/cjs/br-item.cjs.entry.js +1 -1
  11. package/dist/cjs/br-item.cjs.entry.js.map +1 -1
  12. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  13. package/dist/cjs/br-scrim.cjs.entry.js +1 -1
  14. package/dist/cjs/br-scrim.cjs.entry.js.map +1 -1
  15. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/cjs/webcomponents.cjs.js +1 -1
  18. package/dist/collection/components/dropdown/dropdown.css +1 -1
  19. package/dist/collection/components/dropdown/dropdown.js +346 -9
  20. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  21. package/dist/collection/components/icon/icon.css +1 -1
  22. package/dist/collection/components/icon/icon.js +40 -1
  23. package/dist/collection/components/icon/icon.js.map +1 -1
  24. package/dist/collection/components/item/item.css +1 -1
  25. package/dist/collection/components/list/list.js +1 -1
  26. package/dist/collection/components/list/list.js.map +1 -1
  27. package/dist/collection/components/scrim/scrim.css +1 -1
  28. package/dist/collection/pages/scripts/menu.js +1 -1
  29. package/dist/components/br-avatar.js +1 -1
  30. package/dist/components/br-breadcrumb.js +4 -4
  31. package/dist/components/br-collapse.js +4 -4
  32. package/dist/components/br-dropdown.js +332 -25
  33. package/dist/components/br-dropdown.js.map +1 -1
  34. package/dist/components/br-footer-category.js +3 -3
  35. package/dist/components/br-footer-item.js +1 -1
  36. package/dist/components/br-footer-social.js +1 -1
  37. package/dist/components/br-icon.js +4 -4
  38. package/dist/components/br-input.js +3 -3
  39. package/dist/components/br-item.js +4 -4
  40. package/dist/components/br-list.js +4 -4
  41. package/dist/components/br-message.js +1 -1
  42. package/dist/components/br-scrim.js +1 -1
  43. package/dist/components/br-scrim.js.map +1 -1
  44. package/dist/components/br-select.js +4 -4
  45. package/dist/components/br-step-item.js +1 -1
  46. package/dist/components/br-tab-item.js +1 -1
  47. package/dist/components/br-tag.js +6 -6
  48. package/dist/components/br-upload.js +1 -1
  49. package/dist/components/{p-BxU9TOn1.js → p-BbFx1RUd.js} +3 -3
  50. package/dist/components/{p-pq3SZemh.js → p-CIINlcIu.js} +3 -3
  51. package/dist/components/{p-brOPUYUL.js → p-DJtFpYiN.js} +3 -3
  52. package/dist/components/p-DJtFpYiN.js.map +1 -0
  53. package/dist/components/{p-DlMJ2wZW.js → p-rHgHl2v-.js} +6 -6
  54. package/dist/components/{p-DlMJ2wZW.js.map → p-rHgHl2v-.js.map} +1 -1
  55. package/dist/components/{p-jx7aLpDh.js → p-vi3ehOfu.js} +40 -23
  56. package/dist/components/p-vi3ehOfu.js.map +1 -0
  57. package/dist/custom-elements.json +167 -0
  58. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  59. package/dist/esm/br-button_2.entry.js +21 -2
  60. package/dist/esm/br-button_2.entry.js.map +1 -1
  61. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  62. package/dist/esm/br-collapse_2.entry.js +1 -1
  63. package/dist/esm/br-collapse_2.entry.js.map +1 -1
  64. package/dist/esm/br-dropdown.entry.js +324 -10
  65. package/dist/esm/br-dropdown.entry.js.map +1 -1
  66. package/dist/esm/br-item.entry.js +1 -1
  67. package/dist/esm/br-item.entry.js.map +1 -1
  68. package/dist/esm/br-scrim.entry.js +1 -1
  69. package/dist/esm/br-scrim.entry.js.map +1 -1
  70. package/dist/esm/loader.js +1 -1
  71. package/dist/esm/webcomponents.js +1 -1
  72. package/dist/hydrate/index.js +353 -18
  73. package/dist/hydrate/index.mjs +353 -18
  74. package/dist/types/components/dropdown/dropdown.d.ts +48 -1
  75. package/dist/types/components/icon/icon.d.ts +7 -0
  76. package/dist/types/components.d.ts +12 -0
  77. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  78. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  79. package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -1
  80. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  81. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  82. package/dist/webcomponents/{p-713035b5.entry.js → p-0d6df204.entry.js} +3 -3
  83. package/dist/webcomponents/{p-713035b5.entry.js.map → p-0d6df204.entry.js.map} +1 -1
  84. package/dist/webcomponents/{p-c3267481.entry.js → p-3d5600cb.entry.js} +2 -2
  85. package/dist/webcomponents/p-3d5600cb.entry.js.map +1 -0
  86. package/dist/webcomponents/{p-ab251560.entry.js → p-8ac9dcff.entry.js} +329 -23
  87. package/dist/webcomponents/p-8ac9dcff.entry.js.map +1 -0
  88. package/dist/webcomponents/{p-dbfc2a44.entry.js → p-c25d500c.entry.js} +2 -2
  89. package/dist/webcomponents/p-c25d500c.entry.js.map +1 -0
  90. package/dist/webcomponents/{p-383a4240.entry.js → p-e33ca888.entry.js} +23 -7
  91. package/dist/webcomponents/p-e33ca888.entry.js.map +1 -0
  92. package/dist/webcomponents/webcomponents.esm.js +9 -7
  93. package/dist/webcomponents.html-custom-data.json +3 -2
  94. package/package.json +1 -1
  95. package/dist/components/p-brOPUYUL.js.map +0 -1
  96. package/dist/components/p-jx7aLpDh.js.map +0 -1
  97. package/dist/webcomponents/p-383a4240.entry.js.map +0 -1
  98. package/dist/webcomponents/p-ab251560.entry.js.map +0 -1
  99. package/dist/webcomponents/p-c3267481.entry.js.map +0 -1
  100. package/dist/webcomponents/p-dbfc2a44.entry.js.map +0 -1
  101. /package/dist/components/{p-BxU9TOn1.js.map → p-BbFx1RUd.js.map} +0 -0
  102. /package/dist/components/{p-pq3SZemh.js.map → p-CIINlcIu.js.map} +0 -0
@@ -23,19 +23,51 @@ export declare class Dropdown {
23
23
  * Caso não seja fornecido, um ID gerado automaticamente será usado.
24
24
  */
25
25
  readonly customId: string;
26
+ private triggerElement;
27
+ private targetElement;
28
+ private dropdownItems;
29
+ private dropdownLinks;
30
+ private focusableElement;
31
+ private clickHandler;
32
+ private triggerKeydownHandler;
33
+ private targetKeydownHandler;
26
34
  /**
27
35
  * Método chamado sempre que a propriedade `isOpen` muda.
28
36
  * Emite um evento com o novo estado do dropdown.
29
37
  */
30
- isOpenChanged(): void;
38
+ isOpenChanged(newValue: boolean): void;
31
39
  connectedCallback(): void;
32
40
  disconnectedCallback(): void;
41
+ private clearDropdownItemListeners;
42
+ componentDidLoad(): void;
33
43
  /**
34
44
  * Evento emitido quando o estado do dropdown muda.
35
45
  */
36
46
  brDropdownChange: EventEmitter<{
37
47
  'is-opened': boolean;
38
48
  }>;
49
+ /**
50
+ * Configura os comportamentos de interação do dropdown
51
+ */
52
+ private setBehavior;
53
+ /**
54
+ * Lida com o comportamento no trigger
55
+ */
56
+ private handleTriggerBehavior;
57
+ /**
58
+ * Inicializa os itens do dropdown com comportamentos de navegação com teclado,
59
+ * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas
60
+ */
61
+ private initializeDropdownItems;
62
+ /**
63
+ * Handler específico para links
64
+ */
65
+ private handleLinkKeydown;
66
+ /**
67
+ * Handler para eventos de keydown nos itens não-link
68
+ * Implementa navegação completa por setas, Tab não navega entre estes itens
69
+ */
70
+ private handleItemKeydown;
39
71
  private getCssClassMap;
40
72
  /**
41
73
  * Alterna o estado do dropdown entre aberto e fechado.
@@ -63,5 +95,20 @@ export declare class Dropdown {
63
95
  hide(): Promise<{
64
96
  isOpen: boolean;
65
97
  }>;
98
+ /**
99
+ * Foca em um elemento específico com suporte a componentes personalizados
100
+ * @param targetElement Elemento a receber o foco
101
+ */
102
+ private focusOnElement;
103
+ /**
104
+ * Foca no elemento interativo dentro do slot trigger
105
+ * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele
106
+ */
107
+ private focusOnTriggerElement;
108
+ /**
109
+ * Define o foco no elemento interno do componente.
110
+ * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
111
+ */
112
+ setFocus(): Promise<void>;
66
113
  render(): any;
67
114
  }
@@ -57,5 +57,12 @@ export declare class Icon {
57
57
  * Aceita valores como "horizontal" para espelhar o ícone horizontalmente, "vertical" para espelhar verticalmente, ou ambos.
58
58
  */
59
59
  readonly flip?: 'horizontal' | 'vertical';
60
+ /**
61
+ * Determina se o ícone pode receber foco.
62
+ * Se definido como verdadeiro, o ícone pode ser navegado usando Tab.
63
+ * O valor padrão é `false`.
64
+ */
65
+ readonly isFocusable?: boolean;
66
+ componentDidLoad(): void;
60
67
  render(): any;
61
68
  }
@@ -298,6 +298,10 @@ export namespace Components {
298
298
  * @Method () para que possa ser chamado externamente.
299
299
  */
300
300
  "open": () => Promise<{ isOpen: boolean; }>;
301
+ /**
302
+ * Define o foco no elemento interno do componente. Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
303
+ */
304
+ "setFocus": () => Promise<void>;
301
305
  }
302
306
  /**
303
307
  * O componente `br-footer` representa o rodapé do site, de acordo com a documentação de design do GovBR.
@@ -445,6 +449,10 @@ export namespace Components {
445
449
  * Nome do ícone a ser exibido, utilizando a biblioteca Iconify. Este nome deve corresponder ao nome do ícone definido na biblioteca para que ele seja exibido corretamente.
446
450
  */
447
451
  "iconName": string;
452
+ /**
453
+ * Determina se o ícone pode receber foco. Se definido como verdadeiro, o ícone pode ser navegado usando Tab. O valor padrão é `false`.
454
+ */
455
+ "isFocusable"?: boolean;
448
456
  /**
449
457
  * Se definido como verdadeiro, o ícone será alinhado verticalmente ao texto ao seu redor. Útil quando o ícone é usado em linha com texto para garantir que esteja alinhado corretamente com o texto. O valor padrão é `false`.
450
458
  */
@@ -2335,6 +2343,10 @@ declare namespace LocalJSX {
2335
2343
  * Nome do ícone a ser exibido, utilizando a biblioteca Iconify. Este nome deve corresponder ao nome do ícone definido na biblioteca para que ele seja exibido corretamente.
2336
2344
  */
2337
2345
  "iconName"?: string;
2346
+ /**
2347
+ * Determina se o ícone pode receber foco. Se definido como verdadeiro, o ícone pode ser navegado usando Tab. O valor padrão é `false`.
2348
+ */
2349
+ "isFocusable"?: boolean;
2338
2350
  /**
2339
2351
  * Se definido como verdadeiro, o ícone será alinhado verticalmente ao texto ao seu redor. Útil quando o ícone é usado em linha com texto para garantir que esteja alinhado corretamente com o texto. O valor padrão é `false`.
2340
2352
  */