@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.
Files changed (188) hide show
  1. package/dist/cjs/br-avatar.cjs.entry.js +2 -2
  2. package/dist/cjs/br-avatar.cjs.entry.js.map +1 -1
  3. package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
  4. package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
  5. package/dist/cjs/br-button_2.cjs.entry.js +1 -1
  6. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
  7. package/dist/cjs/br-sign-in.cjs.entry.js +109 -0
  8. package/dist/cjs/br-sign-in.cjs.entry.js.map +1 -0
  9. package/dist/cjs/br-sign-in.entry.cjs.js.map +1 -0
  10. package/dist/cjs/br-step-item.cjs.entry.js +1 -1
  11. package/dist/cjs/br-step.cjs.entry.js +1 -1
  12. package/dist/cjs/br-switch.cjs.entry.js +28 -2
  13. package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
  14. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  15. package/dist/cjs/br-tab-item.cjs.entry.js +1 -1
  16. package/dist/cjs/br-tab.cjs.entry.js +1 -1
  17. package/dist/cjs/br-table-cell.cjs.entry.js +1 -1
  18. package/dist/cjs/br-table-header-cell.cjs.entry.js +1 -1
  19. package/dist/cjs/br-table-header-row.cjs.entry.js +1 -1
  20. package/dist/cjs/br-table-row.cjs.entry.js +1 -1
  21. package/dist/cjs/br-table.cjs.entry.js +1 -1
  22. package/dist/cjs/br-tag.cjs.entry.js +151 -13
  23. package/dist/cjs/br-tag.cjs.entry.js.map +1 -1
  24. package/dist/cjs/br-tag.entry.cjs.js.map +1 -1
  25. package/dist/cjs/br-textarea.cjs.entry.js +32 -5
  26. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
  27. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  28. package/dist/cjs/br-tooltip.cjs.entry.js +1 -1
  29. package/dist/cjs/br-upload.cjs.entry.js +15 -23
  30. package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
  31. package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
  32. package/dist/cjs/index-DNnn1o_9.js +4 -0
  33. package/dist/cjs/loader.cjs.js +1 -1
  34. package/dist/cjs/webcomponents.cjs.js +1 -1
  35. package/dist/collection/collection-manifest.json +1 -0
  36. package/dist/collection/components/avatar/avatar.css +1 -1
  37. package/dist/collection/components/avatar/avatar.js +1 -1
  38. package/dist/collection/components/avatar/avatar.js.map +1 -1
  39. package/dist/collection/components/button/button.js +1 -1
  40. package/dist/collection/components/button/button.js.map +1 -1
  41. package/dist/collection/components/sign-in/sign-in.css +1 -0
  42. package/dist/collection/components/sign-in/sign-in.js +303 -0
  43. package/dist/collection/components/sign-in/sign-in.js.map +1 -0
  44. package/dist/collection/components/step/step.js +1 -1
  45. package/dist/collection/components/step-item/step-item.js +1 -1
  46. package/dist/collection/components/switch/switch.css +1 -1
  47. package/dist/collection/components/switch/switch.js +27 -1
  48. package/dist/collection/components/switch/switch.js.map +1 -1
  49. package/dist/collection/components/tab/tab.js +1 -1
  50. package/dist/collection/components/tab-item/tab-item.js +1 -1
  51. package/dist/collection/components/table/table.js +1 -1
  52. package/dist/collection/components/table-cell/table-cell.js +1 -1
  53. package/dist/collection/components/table-header-cell/table-header-cell.js +1 -1
  54. package/dist/collection/components/table-header-row/table-header-row.js +1 -1
  55. package/dist/collection/components/table-row/table-row.js +1 -1
  56. package/dist/collection/components/tag/tag.css +1 -1
  57. package/dist/collection/components/tag/tag.js +192 -14
  58. package/dist/collection/components/tag/tag.js.map +1 -1
  59. package/dist/collection/components/textarea/textarea.js +51 -5
  60. package/dist/collection/components/textarea/textarea.js.map +1 -1
  61. package/dist/collection/components/tooltip/tooltip.js +1 -1
  62. package/dist/collection/components/upload/upload.js +46 -30
  63. package/dist/collection/components/upload/upload.js.map +1 -1
  64. package/dist/collection/pages/components/sign-in/index.js +18 -0
  65. package/dist/collection/pages/scripts/menu.js +5 -0
  66. package/dist/components/br-avatar.js +4 -3
  67. package/dist/components/br-avatar.js.map +1 -1
  68. package/dist/components/br-breadcrumb.js +1 -1
  69. package/dist/components/br-button.js +4 -4
  70. package/dist/components/br-footer-social.js +1 -1
  71. package/dist/components/br-input.js +3 -3
  72. package/dist/components/br-message.js +1 -1
  73. package/dist/components/br-select.js +2 -2
  74. package/dist/components/br-sign-in.d.ts +11 -0
  75. package/dist/components/br-sign-in.js +169 -0
  76. package/dist/components/br-sign-in.js.map +1 -0
  77. package/dist/components/br-step-item.js +13 -13
  78. package/dist/components/br-step.js +3 -3
  79. package/dist/components/br-switch.js +35 -11
  80. package/dist/components/br-switch.js.map +1 -1
  81. package/dist/components/br-tab-item.js +8 -8
  82. package/dist/components/br-tab.js +6 -6
  83. package/dist/components/br-table-cell.js +3 -3
  84. package/dist/components/br-table-header-cell.js +3 -3
  85. package/dist/components/br-table-header-row.js +3 -3
  86. package/dist/components/br-table-row.js +3 -3
  87. package/dist/components/br-table.js +6 -6
  88. package/dist/components/br-tag.js +166 -51
  89. package/dist/components/br-tag.js.map +1 -1
  90. package/dist/components/br-textarea.js +42 -15
  91. package/dist/components/br-textarea.js.map +1 -1
  92. package/dist/components/br-tooltip.js +15 -15
  93. package/dist/components/br-upload.js +56 -58
  94. package/dist/components/br-upload.js.map +1 -1
  95. package/dist/components/index.d.ts +2 -0
  96. package/dist/components/index.js +2 -0
  97. package/dist/components/{p-DZhiQXGc.js → p-Bjt1OWm8.js} +3 -3
  98. package/dist/components/{p-ssSt5UuQ.js → p-Brhs7qAd.js} +6 -7
  99. package/dist/components/p-Brhs7qAd.js.map +1 -0
  100. package/dist/custom-elements.json +551 -9
  101. package/dist/esm/br-avatar.entry.js +2 -2
  102. package/dist/esm/br-avatar.entry.js.map +1 -1
  103. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  104. package/dist/esm/br-button_2.entry.js +1 -1
  105. package/dist/esm/br-button_2.entry.js.map +1 -1
  106. package/dist/esm/br-sign-in.entry.js +107 -0
  107. package/dist/esm/br-sign-in.entry.js.map +1 -0
  108. package/dist/esm/br-step-item.entry.js +1 -1
  109. package/dist/esm/br-step.entry.js +1 -1
  110. package/dist/esm/br-switch.entry.js +28 -2
  111. package/dist/esm/br-switch.entry.js.map +1 -1
  112. package/dist/esm/br-tab-item.entry.js +1 -1
  113. package/dist/esm/br-tab.entry.js +1 -1
  114. package/dist/esm/br-table-cell.entry.js +1 -1
  115. package/dist/esm/br-table-header-cell.entry.js +1 -1
  116. package/dist/esm/br-table-header-row.entry.js +1 -1
  117. package/dist/esm/br-table-row.entry.js +1 -1
  118. package/dist/esm/br-table.entry.js +1 -1
  119. package/dist/esm/br-tag.entry.js +151 -13
  120. package/dist/esm/br-tag.entry.js.map +1 -1
  121. package/dist/esm/br-textarea.entry.js +32 -5
  122. package/dist/esm/br-textarea.entry.js.map +1 -1
  123. package/dist/esm/br-tooltip.entry.js +1 -1
  124. package/dist/esm/br-upload.entry.js +15 -23
  125. package/dist/esm/br-upload.entry.js.map +1 -1
  126. package/dist/esm/index-DmA0bHaX.js +4 -0
  127. package/dist/esm/loader.js +1 -1
  128. package/dist/esm/webcomponents.js +1 -1
  129. package/dist/hydrate/index.js +381 -60
  130. package/dist/hydrate/index.mjs +381 -60
  131. package/dist/types/components/sign-in/sign-in.d.ts +69 -0
  132. package/dist/types/components/switch/switch.d.ts +8 -3
  133. package/dist/types/components/tag/tag.d.ts +45 -3
  134. package/dist/types/components/textarea/textarea.d.ts +18 -0
  135. package/dist/types/components/upload/upload.d.ts +14 -4
  136. package/dist/types/components.d.ts +157 -6
  137. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
  138. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  139. package/dist/webcomponents/br-sign-in.entry.esm.js.map +1 -0
  140. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  141. package/dist/webcomponents/br-tag.entry.esm.js.map +1 -1
  142. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  143. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
  144. package/dist/webcomponents/{p-df6e707a.entry.js → p-0286bc8b.entry.js} +5 -4
  145. package/dist/webcomponents/p-0286bc8b.entry.js.map +1 -0
  146. package/dist/webcomponents/{p-a802ca08.entry.js → p-177edeb5.entry.js} +55 -58
  147. package/dist/webcomponents/p-177edeb5.entry.js.map +1 -0
  148. package/dist/webcomponents/{p-761f7798.entry.js → p-1b86e06c.entry.js} +161 -48
  149. package/dist/webcomponents/p-1b86e06c.entry.js.map +1 -0
  150. package/dist/webcomponents/p-3af05218.entry.js +133 -0
  151. package/dist/webcomponents/p-3af05218.entry.js.map +1 -0
  152. package/dist/webcomponents/{p-bbd38dd7.entry.js → p-3e9e650d.entry.js} +4 -4
  153. package/dist/webcomponents/{p-fa0aeb0f.entry.js → p-3f18e20a.entry.js} +5 -6
  154. package/dist/webcomponents/p-3f18e20a.entry.js.map +1 -0
  155. package/dist/webcomponents/{p-24f6adad.entry.js → p-5e08c9e4.entry.js} +42 -16
  156. package/dist/webcomponents/p-5e08c9e4.entry.js.map +1 -0
  157. package/dist/webcomponents/{p-8b15dfc8.entry.js → p-600fe722.entry.js} +10 -10
  158. package/dist/webcomponents/{p-2a407917.entry.js → p-8f28e933.entry.js} +7 -7
  159. package/dist/webcomponents/{p-d549a87b.entry.js → p-9480b1aa.entry.js} +4 -4
  160. package/dist/webcomponents/{p-1d018f30.entry.js → p-9bbb66bd.entry.js} +4 -4
  161. package/dist/webcomponents/{p-abf81334.entry.js → p-b4dde339.entry.js} +36 -12
  162. package/dist/webcomponents/p-b4dde339.entry.js.map +1 -0
  163. package/dist/webcomponents/{p-096b0875.entry.js → p-b72b4850.entry.js} +4 -4
  164. package/dist/webcomponents/{p-70d4da25.entry.js → p-c9cbb5b3.entry.js} +9 -9
  165. package/dist/webcomponents/{p-ac4ce40c.entry.js → p-e4d965d4.entry.js} +13 -13
  166. package/dist/webcomponents/{p-deb094fb.entry.js → p-e7f1afa4.entry.js} +4 -4
  167. package/dist/webcomponents/{p-f1738ae0.entry.js → p-f883ebf5.entry.js} +7 -7
  168. package/dist/webcomponents/webcomponents.esm.js +1 -1
  169. package/dist/webcomponents.html-custom-data.json +56 -3
  170. package/package.json +1 -1
  171. package/dist/components/p-ssSt5UuQ.js.map +0 -1
  172. package/dist/webcomponents/p-24f6adad.entry.js.map +0 -1
  173. package/dist/webcomponents/p-761f7798.entry.js.map +0 -1
  174. package/dist/webcomponents/p-a802ca08.entry.js.map +0 -1
  175. package/dist/webcomponents/p-abf81334.entry.js.map +0 -1
  176. package/dist/webcomponents/p-df6e707a.entry.js.map +0 -1
  177. package/dist/webcomponents/p-fa0aeb0f.entry.js.map +0 -1
  178. /package/dist/components/{p-DZhiQXGc.js.map → p-Bjt1OWm8.js.map} +0 -0
  179. /package/dist/webcomponents/{p-bbd38dd7.entry.js.map → p-3e9e650d.entry.js.map} +0 -0
  180. /package/dist/webcomponents/{p-8b15dfc8.entry.js.map → p-600fe722.entry.js.map} +0 -0
  181. /package/dist/webcomponents/{p-2a407917.entry.js.map → p-8f28e933.entry.js.map} +0 -0
  182. /package/dist/webcomponents/{p-d549a87b.entry.js.map → p-9480b1aa.entry.js.map} +0 -0
  183. /package/dist/webcomponents/{p-1d018f30.entry.js.map → p-9bbb66bd.entry.js.map} +0 -0
  184. /package/dist/webcomponents/{p-096b0875.entry.js.map → p-b72b4850.entry.js.map} +0 -0
  185. /package/dist/webcomponents/{p-70d4da25.entry.js.map → p-c9cbb5b3.entry.js.map} +0 -0
  186. /package/dist/webcomponents/{p-ac4ce40c.entry.js.map → p-e4d965d4.entry.js.map} +0 -0
  187. /package/dist/webcomponents/{p-deb094fb.entry.js.map → p-e7f1afa4.entry.js.map} +0 -0
  188. /package/dist/webcomponents/{p-f1738ae0.entry.js.map → p-f883ebf5.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"br-tag.entry.js","sources":["../../packages/webcomponents/src/components/tag/tag.scss?tag=br-tag&encapsulation=shadow","../../packages/webcomponents/src/components/tag/tag.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/checkbox/checkbox\";\n@import \"~@govbr-ds/core/src/components/input/input\";\n@import \"~@govbr-ds/core/src/components/tag/tag\";\n\n:host {\n display: inline-block;\n\n .tag-position {\n display: flex;\n justify-content: space-around;\n align-items: center;\n }\n\n .tag-spacing-status {\n margin-left: var(--spacing-scale-half) !important;\n }\n}\n\n.br-tag {\n &:not(.icon) {\n br-icon {\n margin-right: var(--spacing-scale-base);\n }\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} 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/tag?tab=designer).\n *\n * @slot default - Espaço de conteúdo do tag. Geralmente usado para incluir o rótulo ou um ícone.\n */\n\n// Constantes para valores fixos\nconst DENSITY_SMALL = 'small'\nconst DENSITY_MEDIUM = 'medium'\nconst DENSITY_LARGE = 'large'\n\nconst SHAPE_CIRCLE = 'circle'\nconst SHAPE_ROUNDED = 'rounded'\nconst SHAPE_DEFAULT = 'default'\n\n@Component({\n tag: 'br-tag',\n styleUrl: 'tag.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Tag {\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: HTMLBrTagElement\n\n /** API de controle de formulário nativa */\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * A propriedade 'label' é uma string que representa o texto a ser exibido no componente.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) readonly label: string = ''\n\n /**\n * A propriedade 'iconName' define o nome do ícone que será exibido ao lado do texto.\n * O valor padrão é 'fa-solid:car', que corresponde a um ícone de carro da biblioteca Font Awesome.\n */\n @Prop({ reflect: true }) readonly iconName: string = ''\n\n /**\n * A propriedade 'name' é uma string que representa o nome do grupo da tag para seleção.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) readonly name: string = ''\n\n /**\n * A tag permite seleção múltipla.\n * */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * A tag está selecionada.\n * */\n @Prop({ reflect: true, mutable: true }) selected: boolean = false\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-tag-${tagId++}`\n\n /**\n * A propriedade 'color' permite definir a cor do componente.\n * Aceita valores como 'red', 'blue', entre outros, e é refletida no DOM.\n */\n @Prop({ reflect: true }) readonly color: string = ''\n\n /**\n * A propriedade 'density' permite definir a densidade do componente.\n * Aceita valores como 'small', 'medium' e 'large', e é refletida no DOM.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = DENSITY_SMALL\n\n /**\n * A propriedade 'shape' define o formato do componente.\n * Valores possíveis:\n * - 'circle': Componente com formato circular.\n * - 'rounded': Componente com bordas arredondadas.\n * - 'default': Componente com formato padrão.\n */\n @Prop({ reflect: true }) readonly shape: 'circle' | 'rounded' | 'default' = SHAPE_DEFAULT\n\n /**\n * Status deve ser exibido.\n */\n @Prop({ reflect: true }) readonly status: boolean = false\n\n /**\n * Interação deve ser habilitada.\n */\n @Prop({ reflect: true, mutable: true }) interaction: boolean = false\n\n /**\n * Interação de seleção deve ser habilitada.\n * */\n @Prop({ reflect: true }) interactionSelect: boolean = false\n\n /**\n * Tag deve estar desabilitado.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Tag está selecionada.\n */\n @State() selectedClassValue: boolean = false\n\n /**\n * Evento emitido quando a tag é selecionada.\n */\n @Event() radioSelected: EventEmitter<string>\n\n @Watch('interaction')\n handleInteractionChange(newValue: boolean) {\n if (newValue && this.interactionSelect) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n\n @Watch('interactionSelect')\n handleInteractionSelectChange(newValue: boolean) {\n if (newValue && this.interaction) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n\n componentWillLoad() {\n if (this.interaction && this.interactionSelect) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n connectedCallback() {\n this.selectedClassValue = this.selected\n }\n\n @Watch('selected')\n handleSelectedChange(newValue: boolean) {\n this.selectedClassValue = newValue\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tag': true,\n interaction: this.interaction,\n 'interaction-select': this.interactionSelect,\n selected: this.selectedClassValue,\n [this.color]: !!this.color,\n [DENSITY_SMALL]: this.density === DENSITY_SMALL,\n [DENSITY_MEDIUM]: this.density === DENSITY_MEDIUM,\n [DENSITY_LARGE]: this.density === DENSITY_LARGE,\n count: this.shape === SHAPE_ROUNDED,\n icon: this.shape === SHAPE_CIRCLE,\n status: this.status,\n }\n }\n\n private renderIcon() {\n return this.iconName && this.iconName.trim() !== '' ? (\n <br-icon icon-name={this.iconName} aria-hidden=\"true\" />\n ) : null\n }\n\n private renderLabel() {\n return this.shape !== SHAPE_CIRCLE && !this.status ? <span>{this.label}</span> : null\n }\n\n private renderCloseButton() {\n if (!this.interaction) return null\n return (\n <br-button\n type=\"button\"\n shape=\"circle\"\n emphasis=\"primary\"\n aria-label=\"Fechar\"\n onClick={this.handleClose}\n disabled={this.disabled}\n >\n <br-icon icon-name=\"fa-solid:times\"></br-icon>\n </br-button>\n )\n }\n\n private renderStatusLabel() {\n return this.status ? <span class=\"tag-spacing-status\">{this.label}</span> : null\n }\n\n private handleClose = () => {\n this.el.remove()\n }\n\n private handleChangeValueChecked = () => {\n if (!this.multiple) {\n this.radioSelected.emit(this.name)\n }\n this.selected = !this.selected\n }\n\n private handleChangeRadioValue = (event: MouseEvent) => {\n if (!this.multiple) {\n this.radioSelected.emit(this.name)\n this.selected = (event.target as HTMLInputElement).checked\n }\n }\n\n @Listen('radioSelected', { target: 'document' })\n handleCheckedChange(event: CustomEvent) {\n if (event.detail === this.name && this.el !== event.target) {\n this.selected = false\n }\n }\n\n render() {\n const mainTagContent = (\n <span class={this.getCssClassMap()} id={this.customId}>\n {this.renderIcon()}\n {this.renderLabel()}\n {this.renderCloseButton()}\n <slot></slot>\n </span>\n )\n\n return (\n <Host>\n {!this.status ? (\n mainTagContent\n ) : (\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {mainTagContent}\n {this.renderStatusLabel()}\n </div>\n )}\n\n {this.interactionSelect && (\n <span class={this.getCssClassMap()} id={this.customId}>\n {this.multiple ? (\n <input\n id={this.label}\n type=\"checkbox\"\n name={this.name}\n value={this.label}\n checked={this.selected}\n onClick={this.handleChangeValueChecked}\n disabled={this.disabled}\n />\n ) : (\n <input\n id={this.label}\n type=\"radio\"\n name={this.name}\n value={this.label}\n checked={this.selected}\n onClick={this.handleChangeRadioValue}\n disabled={this.disabled}\n />\n )}\n <label htmlFor={this.label}>\n {this.renderIcon()}\n <span>{this.label}</span>\n </label>\n </span>\n )}\n </Host>\n )\n }\n}\n\nlet tagId = 0\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-tag.entry.js","sources":["../../packages/webcomponents/src/components/tag/tag.scss?tag=br-tag&encapsulation=shadow","../../packages/webcomponents/src/components/tag/tag.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/checkbox/checkbox\";\n@import \"~@govbr-ds/core/src/components/input/input\";\n@import \"~@govbr-ds/core/src/components/tag/tag\";\n\n:host {\n display: inline-block;\n margin-right: var(--spacing-scale-half);\n\n .tag-spacing-status {\n margin-left: var(--spacing-scale-half) !important;\n }\n}\n\n.br-tag {\n &.interaction {\n br-button {\n margin-left: var(--spacing-scale-baseh);\n }\n }\n\n &:not(.icon) {\n br-icon {\n margin-right: var(--spacing-scale-base);\n }\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} 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/tag?tab=designer).\n *\n * @slot default - Espaço de conteúdo do tag. Geralmente usado para incluir o rótulo ou um ícone.\n */\n\n// Constantes para valores fixos\nconst DENSITY_SMALL = 'small'\nconst DENSITY_MEDIUM = 'medium'\nconst DENSITY_LARGE = 'large'\n\nconst SHAPE_CIRCLE = 'circle'\nconst SHAPE_ROUNDED = 'rounded'\nconst SHAPE_DEFAULT = 'default'\n\n@Component({\n tag: 'br-tag',\n styleUrl: 'tag.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Tag {\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: HTMLBrTagElement\n\n /** API de controle de formulário nativa */\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * A propriedade 'label' é uma string que representa o texto a ser exibido no componente.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) readonly label: string = ''\n\n /**\n * A propriedade 'iconName' define o nome do ícone que será exibido ao lado do texto.\n * O valor padrão é 'fa-solid:car', que corresponde a um ícone de carro da biblioteca Font Awesome.\n */\n @Prop({ reflect: true }) readonly iconName: string = ''\n\n /**\n * A propriedade 'name' é uma string que representa o nome do grupo da tag para seleção.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) readonly name: string = ''\n\n /**\n * A tag permite seleção múltipla.\n * */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * A tag está selecionada.\n * */\n @Prop({ reflect: true, mutable: true }) selected: boolean = false\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-tag-${tagId++}`\n\n /**\n * A propriedade 'color' permite definir a cor do componente.\n * Aceita valores como 'red', 'blue', entre outros, e é refletida no DOM.\n */\n @Prop({ reflect: true }) readonly color: string = ''\n\n /**\n * A propriedade 'density' permite definir a densidade do componente.\n * Aceita valores como 'small', 'medium' e 'large', e é refletida no DOM.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = DENSITY_MEDIUM\n\n /**\n * A propriedade 'shape' define o formato do componente.\n * Valores possíveis:\n * - 'circle': Componente com formato circular.\n * - 'rounded': Componente com bordas arredondadas.\n * - 'default': Componente com formato padrão.\n */\n @Prop({ reflect: true }) readonly shape: 'circle' | 'rounded' | 'default' = SHAPE_DEFAULT\n\n /**\n * Transforma a tag em um indicador de status, com aparência circular.\n * É flexível podendo ser utilizado com label ou apenas a superfície circular (informação é transmitida por meio de cores).\n */\n @Prop({ reflect: true }) readonly status: boolean = false\n\n /**\n * Interação deve ser habilitada.\n */\n @Prop({ reflect: true, mutable: true }) interaction: boolean = false\n\n /**\n * Interação de seleção deve ser habilitada.\n * */\n @Prop({ reflect: true }) interactionSelect: boolean = false\n\n /**\n * Tag deve estar desabilitado.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Rótulo personalizado para leitores de tela.\n * Quando fornecido, substitui completamente o texto visível para usuários de leitores de tela.\n * Útil quando o texto visível não é suficientemente descritivo (ex: ícones, abreviações).\n */\n @Prop({ reflect: true }) readonly ariaLabel: string = null\n\n /**\n * ID do elemento que fornece descrição adicional da tag.\n * Referencia um elemento na página que contém informações complementares sobre a tag.\n * A descrição é lida após o conteúdo principal, fornecendo contexto extra aos usuários de leitores de tela.\n * Exemplo: aria-describedby=\"help-status\" onde existe <div id=\"help-status\">Aguardando aprovação</div>\n */\n @Prop({ reflect: true }) readonly ariaDescribedby: string = null\n\n /**\n * Tag está selecionada.\n */\n @State() selectedClassValue: boolean = false\n\n /**\n * Evento emitido quando a tag é selecionada.\n */\n @Event() radioSelected: EventEmitter<string>\n\n @Watch('interaction')\n handleInteractionChange(newValue: boolean) {\n if (newValue && this.interactionSelect) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n\n @Watch('interactionSelect')\n handleInteractionSelectChange(newValue: boolean) {\n if (newValue && this.interaction) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n\n @Watch('selected')\n handleSelectedChange(newValue: boolean) {\n this.selectedClassValue = newValue\n }\n\n @Listen('radioSelected', { target: 'document' })\n handleCheckedChange(event: CustomEvent) {\n if (event.detail === this.name && this.el !== event.target) {\n this.selected = false\n }\n }\n\n componentWillLoad() {\n if (this.interaction && this.interactionSelect) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n connectedCallback() {\n this.selectedClassValue = this.selected\n this.el.addEventListener('keydown', this.handleKeyDown)\n }\n\n disconnectedCallback() {\n this.el.removeEventListener('keydown', this.handleKeyDown)\n }\n /**\n * Permite navegação por teclado (setas) entre tags do tipo radio (seleção unica).\n * Funciona apenas quando 'interactionSelect' é true e 'multiple' é false.\n * Ignora tags desabilitadas.\n * @param event - Evento de teclado\n */\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.interactionSelect || this.multiple || this.disabled) return\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n this.selectNextRadio()\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault()\n this.selectPreviousRadio()\n }\n }\n\n private selectNextRadio() {\n this.selectRadioByStep(1)\n }\n\n private selectPreviousRadio() {\n this.selectRadioByStep(-1)\n }\n\n private selectRadioByStep(step: number) {\n const radios = Array.from(\n document.querySelectorAll(`br-tag[interaction-select][name=\"${this.name}\"]:not([disabled])`)\n ) as HTMLElement[]\n const currentIndex = radios.indexOf(this.el)\n if (currentIndex === -1) return\n const newIndex = (currentIndex + step + radios.length) % radios.length\n this.selectRadioByIndex(radios, newIndex)\n }\n\n private selectRadioByIndex(radios: HTMLElement[], index: number) {\n const nextRadio = radios[index] as HTMLBrTagElement\n const input = nextRadio.shadowRoot?.querySelector('input[type=\"radio\"]') as HTMLInputElement | null\n if (input !== null) {\n input.focus()\n input.click()\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tag': true,\n interaction: this.interaction,\n 'interaction-select': this.interactionSelect,\n selected: this.selectedClassValue,\n disabled: this.disabled,\n [this.color]: this.color !== '',\n [DENSITY_SMALL]: this.density === DENSITY_SMALL,\n [DENSITY_MEDIUM]: this.density === DENSITY_MEDIUM,\n [DENSITY_LARGE]: this.density === DENSITY_LARGE,\n count: this.shape === SHAPE_ROUNDED,\n icon: this.shape === SHAPE_CIRCLE,\n status: this.status,\n }\n }\n\n private getTagAttributes() {\n if (this.interaction) {\n return {\n id: this.customId,\n }\n }\n\n return {\n id: this.customId,\n role: this.getRole(),\n 'aria-label': this.getAriaLabel(),\n 'aria-describedby': this.getAriaDescribedBy(),\n 'aria-checked': this.getAriaChecked(),\n 'aria-disabled': this.getAriaDisabled(),\n }\n }\n\n private getAriaDescribedBy(): string | null {\n const hostTitle = this.el.getAttribute('title')\n if (this.hasContent(hostTitle)) {\n return null\n }\n\n const hasInternalLabel = !this.status && this.label !== ''\n\n if (this.ariaDescribedby && this.ariaDescribedby.trim() !== '') {\n return this.ariaDescribedby\n }\n\n if (hasInternalLabel && !this.hasContent(this.ariaLabel)) {\n return `${this.customId}-label`\n }\n\n return null\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 getAriaLabel(): string | null {\n return this.ariaLabel && this.ariaLabel.trim() !== '' ? this.ariaLabel : null\n }\n\n private getRole(): string | null {\n const hostTitle = this.el.getAttribute('title')\n if (this.hasContent(hostTitle)) {\n return null\n }\n\n if (this.interactionSelect) return this.multiple ? 'checkbox' : 'radio'\n return 'status'\n }\n\n private getAriaChecked(): string | null {\n return this.interactionSelect ? (this.selected ? 'true' : 'false') : null\n }\n\n private getAriaDisabled(): string | null {\n return this.disabled ? 'true' : null\n }\n\n private renderIcon() {\n return this.iconName && this.iconName.trim() !== '' ? (\n <br-icon icon-name={this.iconName} aria-hidden=\"true\" />\n ) : null\n }\n\n private renderLabel() {\n return this.shape !== SHAPE_CIRCLE && !this.status ? <span id={`${this.customId}-label`}>{this.label}</span> : null\n }\n\n private renderCloseButton() {\n if (!this.interaction) return null\n return (\n <br-button\n shape=\"circle\"\n emphasis=\"primary\"\n density=\"small\"\n aria-label={`Fechar ${this.label || 'tag'}`}\n onClick={this.handleClose}\n disabled={this.disabled}\n >\n <br-icon icon-name=\"fa-solid:times\" aria-hidden=\"true\"></br-icon>\n </br-button>\n )\n }\n\n private renderStatusLabel() {\n return this.status ? <span class=\"tag-spacing-status\">{this.label}</span> : null\n }\n\n private handleClose = () => {\n this.el.remove()\n }\n\n private handleChangeValueChecked = () => {\n if (!this.multiple) {\n this.radioSelected.emit(this.name)\n }\n this.selected = !this.selected\n }\n\n private handleChangeRadioValue = (event: MouseEvent) => {\n if (!this.multiple) {\n this.radioSelected.emit(this.name)\n this.selected = (event.target as HTMLInputElement).checked\n }\n }\n\n private renderMainTagContent() {\n return (\n <span class={this.getCssClassMap()} {...this.getTagAttributes()}>\n {this.renderIcon()}\n {this.renderLabel()}\n {this.renderCloseButton()}\n <slot></slot>\n </span>\n )\n }\n\n private renderStatusLayout(content: JSX.Element) {\n return (\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {content}\n {this.renderStatusLabel()}\n </span>\n )\n }\n\n private handleInputChange = (event: MouseEvent) => {\n if (this.multiple) {\n this.handleChangeValueChecked()\n } else {\n this.handleChangeRadioValue(event)\n }\n }\n\n private renderInteractionSelectTag() {\n if (!this.interactionSelect) {\n return null\n }\n\n return (\n <span class={this.getCssClassMap()} id={this.customId}>\n <input\n id={`input-${this.customId}`}\n type={this.multiple ? 'checkbox' : 'radio'}\n name={this.name}\n value={this.label}\n checked={this.selected}\n onClick={this.handleInputChange}\n disabled={this.disabled}\n />\n <label htmlFor={`input-${this.customId}`}>\n {this.renderIcon()}\n {this.renderLabel()}\n </label>\n </span>\n )\n }\n\n render() {\n const mainContent = this.renderMainTagContent()\n\n return (\n <Host>\n {this.interactionSelect\n ? this.renderInteractionSelectTag()\n : this.status\n ? this.renderStatusLayout(mainContent)\n : mainContent}\n </Host>\n )\n }\n}\n\nlet tagId = 0\n"],"names":[],"mappings":"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"}
@@ -44,15 +44,15 @@ const Textarea = class {
44
44
  this.isInline = false;
45
45
  this.handleInput = (event) => {
46
46
  this.value = event.target.value;
47
- this.currentLength = this.value?.length;
47
+ this.currentLength = this.value?.length || 0;
48
48
  this.valueChange.emit(this.value);
49
49
  };
50
50
  }
51
51
  componentWillLoad() {
52
- this.currentLength = this.value?.length;
52
+ this.currentLength = this.value?.length || 0;
53
53
  }
54
54
  valueChanged() {
55
- this.currentLength = this.value?.length;
55
+ this.currentLength = this.value?.length || 0;
56
56
  }
57
57
  /**
58
58
  * Define um novo valor para o textarea.
@@ -60,9 +60,35 @@ const Textarea = class {
60
60
  */
61
61
  async setValue(newValue) {
62
62
  this.value = newValue;
63
- this.currentLength = this.value?.length;
63
+ this.currentLength = this.value?.length || 0;
64
64
  this.valueChange.emit(this.value);
65
65
  }
66
+ /**
67
+ * Retorna os ids para o atributo aria-describedby do textarea
68
+ */
69
+ getDescribedBy() {
70
+ return [this.showCounter ? `${this.customId}-limitMax` : null, `${this.customId}-slotInfo`]
71
+ .filter(Boolean)
72
+ .join(' ');
73
+ }
74
+ /**
75
+ * Determina o texto a ser usado para acessibilidade quando não há label
76
+ * Ordem de prioridade:
77
+ * - aria-label do elemento host
78
+ * - propriedade ariaLabel do componente
79
+ * - placeholder
80
+ * - texto padrão ("Campo de texto")
81
+ */
82
+ getAccessibilityLabel() {
83
+ const hostAriaLabel = this.el.getAttribute('aria-label');
84
+ return hostAriaLabel && hostAriaLabel.trim() !== ''
85
+ ? hostAriaLabel
86
+ : this.ariaLabel && this.ariaLabel.trim() !== ''
87
+ ? this.ariaLabel
88
+ : this.placeholder && this.placeholder.trim() !== ''
89
+ ? this.placeholder
90
+ : 'Campo de texto';
91
+ }
66
92
  getCssClassMap() {
67
93
  return {
68
94
  'br-textarea': true,
@@ -77,7 +103,8 @@ const Textarea = class {
77
103
  render() {
78
104
  const caracteresRestantes = this.maxlength - this.currentLength;
79
105
  const mostrarLimite = this.currentLength > 0;
80
- return (h(Host, { key: '31b508c72540c266449933596ccbc8fd960962e7' }, h("div", { key: 'bfa11fb0b9e66c7fec97c8ad67cd2c5cb253a8b6', class: this.getCssClassMap() }, h("div", { key: 'fe27960edc7144abd6f91dd2b194127f6afa5d65', class: this.isInline ? 'row' : '' }, this.isInline ? (h("div", { class: "col-auto pt-half" }, h("label", { htmlFor: this.customId }, this.label))) : (h("label", { htmlFor: this.customId }, this.label)), h("div", { key: 'f6b05e4e30c67bcd270571ab949eaee7ce9e5ab2', class: this.isInline ? 'col' : '' }, h("textarea", { key: '9afe24806c27a70801b5da76082cfc83460612ca', id: this.customId, value: this.value, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, ...(this.maxlength > 0 ? { maxLength: this.maxlength } : {}) }), h("div", { key: '883a4d10573927cac2fdc63190e565d053c9a45f', class: "text-base mt-1" }, this.showCounter && (h("div", { key: '6301a3bdafa2d318e8d5dbd69c40e94750cda564' }, mostrarLimite ? (h("span", { class: "restantes", "aria-live": "polite", role: "status", id: "limitMax" }, "Restam ", h("strong", null, caracteresRestantes), " caracteres")) : (h("span", { class: "limit", "aria-live": "polite" }, "Limite m\u00E1ximo de ", h("strong", null, this.maxlength), " caracteres"))))), h("slot", { key: '0a8e1a6fa116134023d1202cb65d54aa534914cb' }))))));
106
+ const hasLabel = !!this.label;
107
+ return (h(Host, { key: '2af6b394753461a6adf4287a83d5efb39a2e9c55' }, h("div", { key: '59edcfddec5286d98336721a07cb1de753f28fea', class: this.getCssClassMap() }, h("div", { key: 'e087e031bb2d72c4719333125d7e43eff79c62be', class: this.isInline ? 'row' : '' }, this.isInline ? (h("div", { class: "col-auto pt-half" }, h("label", { htmlFor: this.customId }, this.label))) : (h("label", { htmlFor: this.customId }, this.label)), h("div", { key: '7f17addb9d9e9ffe7a528212dcd191887cda047b', class: this.isInline ? 'col' : '' }, h("textarea", { key: 'ca231ff09c4f0dae99636930bafd8a37f8075873', id: this.customId, value: this.value, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, ...(this.maxlength > 0 ? { maxLength: this.maxlength } : {}), "aria-describedby": this.getDescribedBy(), ...(!hasLabel ? { 'aria-label': this.getAccessibilityLabel() } : {}) }), h("div", { key: 'dc74b639344b93eba8a28dc4e17669a226bd7ae0', class: "text-base mt-1" }, this.showCounter && (h("div", { key: '77d4ae651944f408db637ec8fc8a2efb37276ad1' }, mostrarLimite ? (h("span", { class: "restantes", "aria-live": "polite", role: "status", id: `${this.customId}-limitMax` }, "Restam ", h("strong", null, caracteresRestantes), " caracteres")) : (h("span", { class: "limit", "aria-live": "polite", id: `${this.customId}-limitMax` }, "Limite m\u00E1ximo de ", h("strong", null, this.maxlength), " caracteres"))))), h("div", { key: '6b4c7265585b55fb864c001317fad59f955e839e', id: `${this.customId}-slotInfo`, "aria-live": "polite" }, h("slot", { key: '91e491c48d49b1e974e3361eceac5eda0751f295' })))))));
81
108
  }
82
109
  static get formAssociated() { return true; }
83
110
  get el() { return getElement(this); }
@@ -1 +1 @@
1
- {"version":3,"file":"br-textarea.entry.js","sources":["../../packages/webcomponents/src/components/textarea/textarea.scss?tag=br-textarea&encapsulation=shadow","../../packages/webcomponents/src/components/textarea/textarea.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/textarea/textarea\";\n\n:host {\n display: inline-block;\n box-sizing: border-box;\n font-family: Rawline, Raleway, sans-serif;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} 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/textarea?tab=designer).\n *\n * @slot default - Espaço de conteúdo do textarea. Geralmente usado para incluir texto adicional ou instruções para o usuário.\n */\n@Component({\n tag: 'br-textarea',\n styleUrl: 'textarea.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Textarea {\n @Element() el: HTMLBrTextareaElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Valor exibido no textarea.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ mutable: true, reflect: true }) value: string\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) readonly placeholder: string\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-textarea-${textareaId++}`\n\n /**\n * Indica se o textarea está desabilitado. Quando verdadeiro, o usuário não pode interagir com o campo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Número máximo de caracteres permitidos no textarea. Se definido como 0, não há limite.\n */\n @Prop({ reflect: true }) readonly maxlength: number = 0\n\n /**\n * Mostra o contador com a quantidade máxima de caracteres.\n */\n @Prop({ reflect: true }) readonly showCounter: boolean = false\n\n /**\n * Define o estado visual do componente, podendo ser 'danger', 'success' ou 'warning'.\n */\n @Prop({ reflect: true }) readonly state: 'danger' | 'success' | 'warning'\n /**\n * Ajusta a densidade do componente, podendo ser 'small', 'medium' ou 'large'.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Comprimento atual do texto no textarea. É atualizado sempre que o valor do textarea muda.\n */\n @State() currentLength: number\n\n componentWillLoad() {\n this.currentLength = this.value?.length\n }\n\n /**\n * Valor atualizado do textarea\n */\n @Event() valueChange: EventEmitter<string>\n\n @Watch('value')\n valueChanged() {\n this.currentLength = this.value?.length\n }\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.currentLength = this.value?.length\n this.valueChange.emit(this.value)\n }\n\n /**\n * Define um novo valor para o textarea.\n * @param newValue - O novo valor a ser definido.\n */\n @Method()\n async setValue(newValue: string) {\n this.value = newValue\n this.currentLength = this.value?.length\n this.valueChange.emit(this.value)\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-textarea': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n success: this.state === 'success',\n danger: this.state === 'danger',\n warning: this.state === 'warning',\n }\n }\n\n render() {\n const caracteresRestantes: number = this.maxlength - this.currentLength\n const mostrarLimite = this.currentLength > 0\n\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <div class={this.isInline ? 'row' : ''}>\n {this.isInline ? (\n <div class=\"col-auto pt-half\">\n <label htmlFor={this.customId}>{this.label}</label>\n </div>\n ) : (\n <label htmlFor={this.customId}>{this.label}</label>\n )}\n <div class={this.isInline ? 'col' : ''}>\n <textarea\n id={this.customId}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n onInput={this.handleInput}\n {...(this.maxlength > 0 ? { maxLength: this.maxlength } : {})}\n ></textarea>\n <div class=\"text-base mt-1\">\n {this.showCounter && (\n <div>\n {mostrarLimite ? (\n <span class=\"restantes\" aria-live=\"polite\" role=\"status\" id=\"limitMax\">\n Restam <strong>{caracteresRestantes}</strong> caracteres\n </span>\n ) : (\n <span class=\"limit\" aria-live=\"polite\">\n Limite máximo de <strong>{this.maxlength}</strong> caracteres\n </span>\n )}\n </div>\n )}\n </div>\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet textareaId = 0\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-textarea.entry.js","sources":["../../packages/webcomponents/src/components/textarea/textarea.scss?tag=br-textarea&encapsulation=shadow","../../packages/webcomponents/src/components/textarea/textarea.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/textarea/textarea\";\n\n:host {\n display: inline-block;\n box-sizing: border-box;\n font-family: Rawline, Raleway, sans-serif;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} 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/textarea?tab=designer).\n *\n * @slot default - Espaço de conteúdo do textarea. Geralmente usado para incluir texto adicional ou instruções para o usuário.\n */\n@Component({\n tag: 'br-textarea',\n styleUrl: 'textarea.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Textarea {\n @Element() el: HTMLBrTextareaElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Valor exibido no textarea.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ mutable: true, reflect: true }) value: string\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) readonly placeholder: string\n\n /**\n * Texto alternativo para acessibilidade quando não há label visível.\n * Fornece um rótulo para tecnologias assistivas sem exibir visualmente.\n */\n @Prop({ reflect: true }) readonly ariaLabel: string\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-textarea-${textareaId++}`\n\n /**\n * Indica se o textarea está desabilitado. Quando verdadeiro, o usuário não pode interagir com o campo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Número máximo de caracteres permitidos no textarea. Se definido como 0, não há limite.\n */\n @Prop({ reflect: true }) readonly maxlength: number = 0\n\n /**\n * Mostra o contador com a quantidade máxima de caracteres.\n */\n @Prop({ reflect: true }) readonly showCounter: boolean = false\n\n /**\n * Define o estado visual do componente, podendo ser 'danger', 'success' ou 'warning'.\n */\n @Prop({ reflect: true }) readonly state: 'danger' | 'success' | 'warning'\n /**\n * Ajusta a densidade do componente, podendo ser 'small', 'medium' ou 'large'.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Comprimento atual do texto no textarea. É atualizado sempre que o valor do textarea muda.\n */\n @State() currentLength: number\n\n componentWillLoad() {\n this.currentLength = this.value?.length || 0\n }\n\n /**\n * Valor atualizado do textarea\n */\n @Event() valueChange: EventEmitter<string>\n\n @Watch('value')\n valueChanged() {\n this.currentLength = this.value?.length || 0\n }\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.currentLength = this.value?.length || 0\n this.valueChange.emit(this.value)\n }\n\n /**\n * Define um novo valor para o textarea.\n * @param newValue - O novo valor a ser definido.\n */\n @Method()\n async setValue(newValue: string) {\n this.value = newValue\n this.currentLength = this.value?.length || 0\n this.valueChange.emit(this.value)\n }\n\n /**\n * Retorna os ids para o atributo aria-describedby do textarea\n */\n private getDescribedBy(): string {\n return [this.showCounter ? `${this.customId}-limitMax` : null, `${this.customId}-slotInfo`]\n .filter(Boolean)\n .join(' ')\n }\n\n /**\n * Determina o texto a ser usado para acessibilidade quando não há label\n * Ordem de prioridade:\n * - aria-label do elemento host\n * - propriedade ariaLabel do componente\n * - placeholder\n * - texto padrão (\"Campo de texto\")\n */\n private getAccessibilityLabel(): string {\n const hostAriaLabel = this.el.getAttribute('aria-label')\n\n return hostAriaLabel && hostAriaLabel.trim() !== ''\n ? hostAriaLabel\n : this.ariaLabel && this.ariaLabel.trim() !== ''\n ? this.ariaLabel\n : this.placeholder && this.placeholder.trim() !== ''\n ? this.placeholder\n : 'Campo de texto'\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-textarea': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n success: this.state === 'success',\n danger: this.state === 'danger',\n warning: this.state === 'warning',\n }\n }\n\n render() {\n const caracteresRestantes: number = this.maxlength - this.currentLength\n const mostrarLimite = this.currentLength > 0\n const hasLabel = !!this.label\n\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <div class={this.isInline ? 'row' : ''}>\n {this.isInline ? (\n <div class=\"col-auto pt-half\">\n <label htmlFor={this.customId}>{this.label}</label>\n </div>\n ) : (\n <label htmlFor={this.customId}>{this.label}</label>\n )}\n\n <div class={this.isInline ? 'col' : ''}>\n <textarea\n id={this.customId}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n onInput={this.handleInput}\n {...(this.maxlength > 0 ? { maxLength: this.maxlength } : {})}\n aria-describedby={this.getDescribedBy()}\n {...(!hasLabel ? { 'aria-label': this.getAccessibilityLabel() } : {})}\n ></textarea>\n <div class=\"text-base mt-1\">\n {this.showCounter && (\n <div>\n {mostrarLimite ? (\n <span class=\"restantes\" aria-live=\"polite\" role=\"status\" id={`${this.customId}-limitMax`}>\n Restam <strong>{caracteresRestantes}</strong> caracteres\n </span>\n ) : (\n <span class=\"limit\" aria-live=\"polite\" id={`${this.customId}-limitMax`}>\n Limite máximo de <strong>{this.maxlength}</strong> caracteres\n </span>\n )}\n </div>\n )}\n </div>\n <div id={`${this.customId}-slotInfo`} aria-live=\"polite\">\n <slot></slot>\n </div>\n </div>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet textareaId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,WAAW,GAAG,y43DAAy43D;;MC2Bh53D,QAAQ,GAAA,MAAA;AANrB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;;;;;AAiCE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,eAAe,UAAU,EAAE,EAAE;AAElF;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;AAEG;AAC+B,QAAA,IAAS,CAAA,SAAA,GAAW,CAAC;AAEvD;;AAEG;AAC+B,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK;AAM9D;;AAEG;AAC+B,QAAA,IAAO,CAAA,OAAA,GAAiC,QAAQ;AAElF;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAqB1C,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAY,KAAI;YAC9C,IAAI,CAAC,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;YACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC,SAAC;AA0GF;IA5HC,iBAAiB,GAAA;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;;IAS9C,YAAY,GAAA;QACV,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;;AAS9C;;;AAGG;IAEH,MAAM,QAAQ,CAAC,QAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGnC;;AAEG;IACK,cAAc,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAG,EAAA,IAAI,CAAC,QAAQ,WAAW,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA,SAAA,CAAW;aACvF,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG,CAAC;;AAGd;;;;;;;AAOG;IACK,qBAAqB,GAAA;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;AAExD,QAAA,OAAO,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK;AAC/C,cAAE;AACF,cAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK;kBAC1C,IAAI,CAAC;AACP,kBAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK;sBAC9C,IAAI,CAAC;sBACL,gBAAgB;;IAGlB,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;AAC/B,YAAA,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ;AACjC,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;AAC/B,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;AACjC,YAAA,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,QAAQ;AAC/B,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;SAClC;;IAGH,MAAM,GAAA;QACJ,MAAM,mBAAmB,GAAW,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;AACvE,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC;AAC5C,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK;QAE7B,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAC/B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,EAAE,EAAA,EACnC,IAAI,CAAC,QAAQ,IACZ,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,kBAAkB,EAAA,EAC3B,CAAO,CAAA,OAAA,EAAA,EAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAG,EAAA,IAAI,CAAC,KAAK,CAAS,CAC/C,KAEN,CAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAA,EAAG,IAAI,CAAC,KAAK,CAAS,CACpD,EAED,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,EAAE,EAAA,EACpC,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,IACpB,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAC3C,kBAAA,EAAA,IAAI,CAAC,cAAc,EAAE,EACnC,IAAC,CAAC,QAAQ,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,EAC3D,CAAA,EACZ,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACxB,IAAI,CAAC,WAAW,KACf,CACG,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,aAAa,IACZ,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,WAAW,EAAA,WAAA,EAAW,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAW,SAAA,CAAA,EAAA,aAC/E,CAAA,CAAA,QAAA,EAAA,IAAA,EAAS,mBAAmB,CAAU,EACxC,aAAA,CAAA,KAEP,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,OAAO,EAAW,WAAA,EAAA,QAAQ,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAW,SAAA,CAAA,EAAA,4BACnD,CAAS,CAAA,QAAA,EAAA,IAAA,EAAA,IAAI,CAAC,SAAS,CAAU,gBAC7C,CACR,CACG,CACP,CACG,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,CAAA,EAAG,IAAI,CAAC,QAAQ,WAAW,eAAY,QAAQ,EAAA,EACtD,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACF,CACF,CACF,CACD;;;;;;;;AAKb,IAAI,UAAU,GAAG,CAAC;;;;;"}
@@ -2129,7 +2129,7 @@ const Tooltip = class {
2129
2129
  * @returns JSX.Element
2130
2130
  */
2131
2131
  render() {
2132
- return (h(Host, { key: '99bea58c6f571ff49f266072d8ee4af8b4081adc' }, h("div", { key: '190c140a9059470c92450f7677ad8bef6d48b207', id: this.customId, class: this.getCssClassMap() }, h("div", { key: 'ab35ec93893f689929774cc0172e2cdf6f2f76e7', class: this.getTriggerCssClassMap(), ref: (el) => (this.triggerElement = el), "aria-describedby": `${this.customId}-content`, "aria-expanded": this.isVisible ? 'true' : 'false', "aria-controls": `${this.customId}-content`, role: "button", tabindex: "-1 " }, h("slot", { key: '62de7618f2bae7e8e5aaca4ecad10b91205ce230', name: "trigger" })), h("div", { key: 'd6dd66c4102ddbb2f0924cf9aeb3dab1bab28176', id: `${this.customId}-content`, class: this.getContentCssClassMap(), ref: (el) => (this.contentElement = el), role: this.type === 'popover' ? 'dialog' : 'tooltip', tabindex: "-1" }, h("slot", { key: '4a9403a4690b52de0dad0209b36af290601c21d0', name: "content" }), this.type === 'popover' && (h("br-button", { key: 'fd3c23f6f1bcc9654180a4b5c09bb5206a127e6d', class: "close", shape: "circle", density: "small", onClick: this.hideContent, "aria-label": "Fechar popover" }, h("br-icon", { key: '0b301c330749757e8207fb1d82041f4037e06b14', "icon-name": "fa6-solid:xmark" }))), h("div", { key: '88b50021b6ff75a51534d3c1bc57cb7b279852a4', class: this.getArrowCssClassMap(), ref: (el) => (this.arrowElement = el) })))));
2132
+ return (h(Host, { key: 'd6e5912cdffef08607dff63f5e0e2a50e0899352' }, h("div", { key: 'a21ed47af05bf9390915f4c71e83d565fd09bf73', id: this.customId, class: this.getCssClassMap() }, h("div", { key: '015798d2ee394f605d2a14c0b729c80a760ba40f', class: this.getTriggerCssClassMap(), ref: (el) => (this.triggerElement = el), "aria-describedby": `${this.customId}-content`, "aria-expanded": this.isVisible ? 'true' : 'false', "aria-controls": `${this.customId}-content`, role: "button", tabindex: "-1 " }, h("slot", { key: '8db8be8f39105a2cbc27e2582c2fa9027d2a115a', name: "trigger" })), h("div", { key: '1b568d67be6ca529e23770f8dae9975192b02ce8', id: `${this.customId}-content`, class: this.getContentCssClassMap(), ref: (el) => (this.contentElement = el), role: this.type === 'popover' ? 'dialog' : 'tooltip', tabindex: "-1" }, h("slot", { key: '457a486444176df4f449d775b307564ac0479198', name: "content" }), this.type === 'popover' && (h("br-button", { key: 'b6df572d9ea58e70a56b12a099a190249e98754e', class: "close", shape: "circle", density: "small", onClick: this.hideContent, "aria-label": "Fechar popover" }, h("br-icon", { key: '1dcb3fc0b1cc3800a66b1e3373404a9e66fb54d4', "icon-name": "fa6-solid:xmark" }))), h("div", { key: 'abbac07e028eb35eca6e6acb81f79af93f4f0be9', class: this.getArrowCssClassMap(), ref: (el) => (this.arrowElement = el) })))));
2133
2133
  }
2134
2134
  static get formAssociated() { return true; }
2135
2135
  get el() { return getElement(this); }
@@ -6,13 +6,6 @@ import { r as registerInstance, h, a as Host, g as getElement } from './index-Dm
6
6
 
7
7
  const uploadCss = "*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;-moz-appearance:button;appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden]{display:none}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-.5);margin-right:calc(var(--grid-gutter)*-.5)}@media (min-width:576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}}@media (min-width:992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width:1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width:1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mt-1{margin-top:var(--spacing-scale-half)!important}.mb-1{margin-bottom:var(--spacing-scale-half)!important}.mr-2{margin-right:var(--spacing-scale-base)!important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1)!important}.ml-2{margin-left:var(--spacing-scale-base)!important}.mr-auto{margin-right:auto!important}.pt-half{padding-top:var(--spacing-scale-half)!important}.py-3{padding-bottom:var(--spacing-scale-2x)!important;padding-top:var(--spacing-scale-2x)!important}.py-4{padding-bottom:var(--spacing-scale-3x)!important;padding-top:var(--spacing-scale-3x)!important}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width:576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half);color:var(--interactive);text-decoration:none}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(var(--interactive-rgb),var(--hover))),to(rgba(var(--interactive-rgb),var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb),var(--hover)),rgba(var(--interactive-rgb),var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(var(--interactive-rgb),var(--pressed))),to(rgba(var(--interactive-rgb),var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb),var(--pressed)),rgba(var(--interactive-rgb),var(--pressed)))}button{cursor:pointer}img{max-width:100%;vertical-align:middle}ol,ul{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}.label,label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}.placeholder,::placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}.input,input,textarea{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.bg-blue-90{--background:var(--blue-90);background:var(--blue-90)!important}.bg-blue-80{--background:var(--blue-80);background:var(--blue-80)!important}.bg-blue-70{--background:var(--blue-70);background:var(--blue-70)!important}.bg-blue-60{--background:var(--blue-60);background:var(--blue-60)!important}.bg-blue-50{--background:var(--blue-50);background:var(--blue-50)!important}.bg-blue-40{--background:var(--blue-40);background:var(--blue-40)!important}.bg-blue-30{--background:var(--blue-30);background:var(--blue-30)!important}.bg-blue-20{--background:var(--blue-20);background:var(--blue-20)!important}.bg-blue-10{--background:var(--blue-10);background:var(--blue-10)!important}.bg-blue-5{--background:var(--blue-5);background:var(--blue-5)!important}.bg-blue-cool-90{--background:var(--blue-cool-90);background:var(--blue-cool-90)!important}.bg-blue-cool-80{--background:var(--blue-cool-80);background:var(--blue-cool-80)!important}.bg-blue-cool-70{--background:var(--blue-cool-70);background:var(--blue-cool-70)!important}.bg-blue-cool-60{--background:var(--blue-cool-60);background:var(--blue-cool-60)!important}.bg-blue-cool-50{--background:var(--blue-cool-50);background:var(--blue-cool-50)!important}.bg-blue-cool-40{--background:var(--blue-cool-40);background:var(--blue-cool-40)!important}.bg-blue-cool-30{--background:var(--blue-cool-30);background:var(--blue-cool-30)!important}.bg-blue-cool-20{--background:var(--blue-cool-20);background:var(--blue-cool-20)!important}.bg-blue-cool-10{--background:var(--blue-cool-10);background:var(--blue-cool-10)!important}.bg-blue-cool-5{--background:var(--blue-cool-5);background:var(--blue-cool-5)!important}.bg-blue-warm-90{--background:var(--blue-warm-90);background:var(--blue-warm-90)!important}.bg-blue-warm-80{--background:var(--blue-warm-80);background:var(--blue-warm-80)!important}.bg-blue-warm-70{--background:var(--blue-warm-70);background:var(--blue-warm-70)!important}.bg-blue-warm-60{--background:var(--blue-warm-60);background:var(--blue-warm-60)!important}.bg-blue-warm-50{--background:var(--blue-warm-50);background:var(--blue-warm-50)!important}.bg-blue-warm-40{--background:var(--blue-warm-40);background:var(--blue-warm-40)!important}.bg-blue-warm-30{--background:var(--blue-warm-30);background:var(--blue-warm-30)!important}.bg-blue-warm-20{--background:var(--blue-warm-20);background:var(--blue-warm-20)!important}.bg-blue-warm-10{--background:var(--blue-warm-10);background:var(--blue-warm-10)!important}.bg-blue-warm-5{--background:var(--blue-warm-5);background:var(--blue-warm-5)!important}.bg-blue-vivid-80{--background:var(--blue-vivid-80);background:var(--blue-vivid-80)!important}.bg-blue-vivid-70{--background:var(--blue-vivid-70);background:var(--blue-vivid-70)!important}.bg-blue-vivid-60{--background:var(--blue-vivid-60);background:var(--blue-vivid-60)!important}.bg-blue-vivid-50{--background:var(--blue-vivid-50);background:var(--blue-vivid-50)!important}.bg-blue-vivid-40{--background:var(--blue-vivid-40);background:var(--blue-vivid-40)!important}.bg-blue-vivid-30{--background:var(--blue-vivid-30);background:var(--blue-vivid-30)!important}.bg-blue-vivid-20{--background:var(--blue-vivid-20);background:var(--blue-vivid-20)!important}.bg-blue-vivid-10{--background:var(--blue-vivid-10);background:var(--blue-vivid-10)!important}.bg-blue-vivid-5{--background:var(--blue-vivid-5);background:var(--blue-vivid-5)!important}.bg-blue-cool-vivid-80{--background:var(--blue-cool-vivid-80);background:var(--blue-cool-vivid-80)!important}.bg-blue-cool-vivid-70{--background:var(--blue-cool-vivid-70);background:var(--blue-cool-vivid-70)!important}.bg-blue-cool-vivid-60{--background:var(--blue-cool-vivid-60);background:var(--blue-cool-vivid-60)!important}.bg-blue-cool-vivid-50{--background:var(--blue-cool-vivid-50);background:var(--blue-cool-vivid-50)!important}.bg-blue-cool-vivid-40{--background:var(--blue-cool-vivid-40);background:var(--blue-cool-vivid-40)!important}.bg-blue-cool-vivid-30{--background:var(--blue-cool-vivid-30);background:var(--blue-cool-vivid-30)!important}.bg-blue-cool-vivid-20{--background:var(--blue-cool-vivid-20);background:var(--blue-cool-vivid-20)!important}.bg-blue-cool-vivid-10{--background:var(--blue-cool-vivid-10);background:var(--blue-cool-vivid-10)!important}.bg-blue-cool-vivid-5{--background:var(--blue-cool-vivid-5);background:var(--blue-cool-vivid-5)!important}.bg-blue-warm-vivid-90{--background:var(--blue-warm-vivid-90);background:var(--blue-warm-vivid-90)!important}.bg-blue-warm-vivid-80{--background:var(--blue-warm-vivid-80);background:var(--blue-warm-vivid-80)!important}.bg-blue-warm-vivid-70{--background:var(--blue-warm-vivid-70);background:var(--blue-warm-vivid-70)!important}.bg-blue-warm-vivid-60{--background:var(--blue-warm-vivid-60);background:var(--blue-warm-vivid-60)!important}.bg-blue-warm-vivid-50{--background:var(--blue-warm-vivid-50);background:var(--blue-warm-vivid-50)!important}.bg-blue-warm-vivid-40{--background:var(--blue-warm-vivid-40);background:var(--blue-warm-vivid-40)!important}.bg-blue-warm-vivid-30{--background:var(--blue-warm-vivid-30);background:var(--blue-warm-vivid-30)!important}.bg-blue-warm-vivid-20{--background:var(--blue-warm-vivid-20);background:var(--blue-warm-vivid-20)!important}.bg-blue-warm-vivid-10{--background:var(--blue-warm-vivid-10);background:var(--blue-warm-vivid-10)!important}.bg-blue-warm-vivid-5{--background:var(--blue-warm-vivid-5);background:var(--blue-warm-vivid-5)!important}.bg-cyan-90{--background:var(--cyan-90);background:var(--cyan-90)!important}.bg-cyan-80{--background:var(--cyan-80);background:var(--cyan-80)!important}.bg-cyan-70{--background:var(--cyan-70);background:var(--cyan-70)!important}.bg-cyan-60{--background:var(--cyan-60);background:var(--cyan-60)!important}.bg-cyan-50{--background:var(--cyan-50);background:var(--cyan-50)!important}.bg-cyan-40{--background:var(--cyan-40);background:var(--cyan-40)!important}.bg-cyan-30{--background:var(--cyan-30);background:var(--cyan-30)!important}.bg-cyan-20{--background:var(--cyan-20);background:var(--cyan-20)!important}.bg-cyan-10{--background:var(--cyan-10);background:var(--cyan-10)!important}.bg-cyan-5{--background:var(--cyan-5);background:var(--cyan-5)!important}.bg-cyan-vivid-80{--background:var(--cyan-vivid-80);background:var(--cyan-vivid-80)!important}.bg-cyan-vivid-70{--background:var(--cyan-vivid-70);background:var(--cyan-vivid-70)!important}.bg-cyan-vivid-60{--background:var(--cyan-vivid-60);background:var(--cyan-vivid-60)!important}.bg-cyan-vivid-50{--background:var(--cyan-vivid-50);background:var(--cyan-vivid-50)!important}.bg-cyan-vivid-40{--background:var(--cyan-vivid-40);background:var(--cyan-vivid-40)!important}.bg-cyan-vivid-30{--background:var(--cyan-vivid-30);background:var(--cyan-vivid-30)!important}.bg-cyan-vivid-20{--background:var(--cyan-vivid-20);background:var(--cyan-vivid-20)!important}.bg-cyan-vivid-10{--background:var(--cyan-vivid-10);background:var(--cyan-vivid-10)!important}.bg-cyan-vivid-5{--background:var(--cyan-vivid-5);background:var(--cyan-vivid-5)!important}.bg-gold-90{--background:var(--gold-90);background:var(--gold-90)!important}.bg-gold-80{--background:var(--gold-80);background:var(--gold-80)!important}.bg-gold-70{--background:var(--gold-70);background:var(--gold-70)!important}.bg-gold-60{--background:var(--gold-60);background:var(--gold-60)!important}.bg-gold-50{--background:var(--gold-50);background:var(--gold-50)!important}.bg-gold-40{--background:var(--gold-40);background:var(--gold-40)!important}.bg-gold-30{--background:var(--gold-30);background:var(--gold-30)!important}.bg-gold-20{--background:var(--gold-20);background:var(--gold-20)!important}.bg-gold-10{--background:var(--gold-10);background:var(--gold-10)!important}.bg-gold-5{--background:var(--gold-5);background:var(--gold-5)!important}.bg-gold-vivid-80{--background:var(--gold-vivid-80);background:var(--gold-vivid-80)!important}.bg-gold-vivid-70{--background:var(--gold-vivid-70);background:var(--gold-vivid-70)!important}.bg-gold-vivid-60{--background:var(--gold-vivid-60);background:var(--gold-vivid-60)!important}.bg-gold-vivid-50{--background:var(--gold-vivid-50);background:var(--gold-vivid-50)!important}.bg-gold-vivid-40{--background:var(--gold-vivid-40);background:var(--gold-vivid-40)!important}.bg-gold-vivid-30{--background:var(--gold-vivid-30);background:var(--gold-vivid-30)!important}.bg-gold-vivid-20{--background:var(--gold-vivid-20);background:var(--gold-vivid-20)!important}.bg-gold-vivid-10{--background:var(--gold-vivid-10);background:var(--gold-vivid-10)!important}.bg-gold-vivid-5{--background:var(--gold-vivid-5);background:var(--gold-vivid-5)!important}.bg-gray-90{--background:var(--gray-90);background:var(--gray-90)!important}.bg-gray-80{--background:var(--gray-80);background:var(--gray-80)!important}.bg-gray-70{--background:var(--gray-70);background:var(--gray-70)!important}.bg-gray-60{--background:var(--gray-60);background:var(--gray-60)!important}.bg-gray-50{--background:var(--gray-50);background:var(--gray-50)!important}.bg-gray-40{--background:var(--gray-40);background:var(--gray-40)!important}.bg-gray-30{--background:var(--gray-30);background:var(--gray-30)!important}.bg-gray-20{--background:var(--gray-20);background:var(--gray-20)!important}.bg-gray-10{--background:var(--gray-10);background:var(--gray-10)!important}.bg-gray-5{--background:var(--gray-5);background:var(--gray-5)!important}.bg-gray-4{--background:var(--gray-4);background:var(--gray-4)!important}.bg-gray-3{--background:var(--gray-3);background:var(--gray-3)!important}.bg-gray-2{--background:var(--gray-2);background:var(--gray-2)!important}.bg-gray-1{--background:var(--gray-1);background:var(--gray-1)!important}.bg-gray-cool-90{--background:var(--gray-cool-90);background:var(--gray-cool-90)!important}.bg-gray-cool-80{--background:var(--gray-cool-80);background:var(--gray-cool-80)!important}.bg-gray-cool-70{--background:var(--gray-cool-70);background:var(--gray-cool-70)!important}.bg-gray-cool-60{--background:var(--gray-cool-60);background:var(--gray-cool-60)!important}.bg-gray-cool-50{--background:var(--gray-cool-50);background:var(--gray-cool-50)!important}.bg-gray-cool-40{--background:var(--gray-cool-40);background:var(--gray-cool-40)!important}.bg-gray-cool-30{--background:var(--gray-cool-30);background:var(--gray-cool-30)!important}.bg-gray-cool-20{--background:var(--gray-cool-20);background:var(--gray-cool-20)!important}.bg-gray-cool-10{--background:var(--gray-cool-10);background:var(--gray-cool-10)!important}.bg-gray-cool-5{--background:var(--gray-cool-5);background:var(--gray-cool-5)!important}.bg-gray-cool-4{--background:var(--gray-cool-4);background:var(--gray-cool-4)!important}.bg-gray-cool-3{--background:var(--gray-cool-3);background:var(--gray-cool-3)!important}.bg-gray-cool-2{--background:var(--gray-cool-2);background:var(--gray-cool-2)!important}.bg-gray-cool-1{--background:var(--gray-cool-1);background:var(--gray-cool-1)!important}.bg-gray-warm-90{--background:var(--gray-warm-90);background:var(--gray-warm-90)!important}.bg-gray-warm-80{--background:var(--gray-warm-80);background:var(--gray-warm-80)!important}.bg-gray-warm-70{--background:var(--gray-warm-70);background:var(--gray-warm-70)!important}.bg-gray-warm-60{--background:var(--gray-warm-60);background:var(--gray-warm-60)!important}.bg-gray-warm-50{--background:var(--gray-warm-50);background:var(--gray-warm-50)!important}.bg-gray-warm-40{--background:var(--gray-warm-40);background:var(--gray-warm-40)!important}.bg-gray-warm-30{--background:var(--gray-warm-30);background:var(--gray-warm-30)!important}.bg-gray-warm-20{--background:var(--gray-warm-20);background:var(--gray-warm-20)!important}.bg-gray-warm-10{--background:var(--gray-warm-10);background:var(--gray-warm-10)!important}.bg-gray-warm-5{--background:var(--gray-warm-5);background:var(--gray-warm-5)!important}.bg-gray-warm-4{--background:var(--gray-warm-4);background:var(--gray-warm-4)!important}.bg-gray-warm-3{--background:var(--gray-warm-3);background:var(--gray-warm-3)!important}.bg-gray-warm-2{--background:var(--gray-warm-2);background:var(--gray-warm-2)!important}.bg-gray-warm-1{--background:var(--gray-warm-1);background:var(--gray-warm-1)!important}.bg-green-90{--background:var(--green-90);background:var(--green-90)!important}.bg-green-80{--background:var(--green-80);background:var(--green-80)!important}.bg-green-70{--background:var(--green-70);background:var(--green-70)!important}.bg-green-60{--background:var(--green-60);background:var(--green-60)!important}.bg-green-50{--background:var(--green-50);background:var(--green-50)!important}.bg-green-40{--background:var(--green-40);background:var(--green-40)!important}.bg-green-30{--background:var(--green-30);background:var(--green-30)!important}.bg-green-20{--background:var(--green-20);background:var(--green-20)!important}.bg-green-10{--background:var(--green-10);background:var(--green-10)!important}.bg-green-5{--background:var(--green-5);background:var(--green-5)!important}.bg-green-cool-90{--background:var(--green-cool-90);background:var(--green-cool-90)!important}.bg-green-cool-80{--background:var(--green-cool-80);background:var(--green-cool-80)!important}.bg-green-cool-70{--background:var(--green-cool-70);background:var(--green-cool-70)!important}.bg-green-cool-60{--background:var(--green-cool-60);background:var(--green-cool-60)!important}.bg-green-cool-50{--background:var(--green-cool-50);background:var(--green-cool-50)!important}.bg-green-cool-40{--background:var(--green-cool-40);background:var(--green-cool-40)!important}.bg-green-cool-30{--background:var(--green-cool-30);background:var(--green-cool-30)!important}.bg-green-cool-20{--background:var(--green-cool-20);background:var(--green-cool-20)!important}.bg-green-cool-10{--background:var(--green-cool-10);background:var(--green-cool-10)!important}.bg-green-cool-5{--background:var(--green-cool-5);background:var(--green-cool-5)!important}.bg-green-warm-90{--background:var(--green-warm-90);background:var(--green-warm-90)!important}.bg-green-warm-80{--background:var(--green-warm-80);background:var(--green-warm-80)!important}.bg-green-warm-70{--background:var(--green-warm-70);background:var(--green-warm-70)!important}.bg-green-warm-60{--background:var(--green-warm-60);background:var(--green-warm-60)!important}.bg-green-warm-50{--background:var(--green-warm-50);background:var(--green-warm-50)!important}.bg-green-warm-40{--background:var(--green-warm-40);background:var(--green-warm-40)!important}.bg-green-warm-30{--background:var(--green-warm-30);background:var(--green-warm-30)!important}.bg-green-warm-20{--background:var(--green-warm-20);background:var(--green-warm-20)!important}.bg-green-warm-10{--background:var(--green-warm-10);background:var(--green-warm-10)!important}.bg-green-warm-5{--background:var(--green-warm-5);background:var(--green-warm-5)!important}.bg-green-vivid-80{--background:var(--green-vivid-80);background:var(--green-vivid-80)!important}.bg-green-vivid-70{--background:var(--green-vivid-70);background:var(--green-vivid-70)!important}.bg-green-vivid-60{--background:var(--green-vivid-60);background:var(--green-vivid-60)!important}.bg-green-vivid-50{--background:var(--green-vivid-50);background:var(--green-vivid-50)!important}.bg-green-vivid-40{--background:var(--green-vivid-40);background:var(--green-vivid-40)!important}.bg-green-vivid-30{--background:var(--green-vivid-30);background:var(--green-vivid-30)!important}.bg-green-vivid-20{--background:var(--green-vivid-20);background:var(--green-vivid-20)!important}.bg-green-vivid-10{--background:var(--green-vivid-10);background:var(--green-vivid-10)!important}.bg-green-vivid-5{--background:var(--green-vivid-5);background:var(--green-vivid-5)!important}.bg-green-cool-vivid-80{--background:var(--green-cool-vivid-80);background:var(--green-cool-vivid-80)!important}.bg-green-cool-vivid-70{--background:var(--green-cool-vivid-70);background:var(--green-cool-vivid-70)!important}.bg-green-cool-vivid-60{--background:var(--green-cool-vivid-60);background:var(--green-cool-vivid-60)!important}.bg-green-cool-vivid-50{--background:var(--green-cool-vivid-50);background:var(--green-cool-vivid-50)!important}.bg-green-cool-vivid-40{--background:var(--green-cool-vivid-40);background:var(--green-cool-vivid-40)!important}.bg-green-cool-vivid-30{--background:var(--green-cool-vivid-30);background:var(--green-cool-vivid-30)!important}.bg-green-cool-vivid-20{--background:var(--green-cool-vivid-20);background:var(--green-cool-vivid-20)!important}.bg-green-cool-vivid-10{--background:var(--green-cool-vivid-10);background:var(--green-cool-vivid-10)!important}.bg-green-cool-vivid-5{--background:var(--green-cool-vivid-5);background:var(--green-cool-vivid-5)!important}.bg-green-warm-vivid-80{--background:var(--green-warm-vivid-80);background:var(--green-warm-vivid-80)!important}.bg-green-warm-vivid-70{--background:var(--green-warm-vivid-70);background:var(--green-warm-vivid-70)!important}.bg-green-warm-vivid-60{--background:var(--green-warm-vivid-60);background:var(--green-warm-vivid-60)!important}.bg-green-warm-vivid-50{--background:var(--green-warm-vivid-50);background:var(--green-warm-vivid-50)!important}.bg-green-warm-vivid-40{--background:var(--green-warm-vivid-40);background:var(--green-warm-vivid-40)!important}.bg-green-warm-vivid-30{--background:var(--green-warm-vivid-30);background:var(--green-warm-vivid-30)!important}.bg-green-warm-vivid-20{--background:var(--green-warm-vivid-20);background:var(--green-warm-vivid-20)!important}.bg-green-warm-vivid-10{--background:var(--green-warm-vivid-10);background:var(--green-warm-vivid-10)!important}.bg-green-warm-vivid-5{--background:var(--green-warm-vivid-5);background:var(--green-warm-vivid-5)!important}.bg-indigo-90{--background:var(--indigo-90);background:var(--indigo-90)!important}.bg-indigo-80{--background:var(--indigo-80);background:var(--indigo-80)!important}.bg-indigo-70{--background:var(--indigo-70);background:var(--indigo-70)!important}.bg-indigo-60{--background:var(--indigo-60);background:var(--indigo-60)!important}.bg-indigo-50{--background:var(--indigo-50);background:var(--indigo-50)!important}.bg-indigo-40{--background:var(--indigo-40);background:var(--indigo-40)!important}.bg-indigo-30{--background:var(--indigo-30);background:var(--indigo-30)!important}.bg-indigo-20{--background:var(--indigo-20);background:var(--indigo-20)!important}.bg-indigo-10{--background:var(--indigo-10);background:var(--indigo-10)!important}.bg-indigo-5{--background:var(--indigo-5);background:var(--indigo-5)!important}.bg-indigo-cool-90{--background:var(--indigo-cool-90);background:var(--indigo-cool-90)!important}.bg-indigo-cool-80{--background:var(--indigo-cool-80);background:var(--indigo-cool-80)!important}.bg-indigo-cool-70{--background:var(--indigo-cool-70);background:var(--indigo-cool-70)!important}.bg-indigo-cool-60{--background:var(--indigo-cool-60);background:var(--indigo-cool-60)!important}.bg-indigo-cool-50{--background:var(--indigo-cool-50);background:var(--indigo-cool-50)!important}.bg-indigo-cool-40{--background:var(--indigo-cool-40);background:var(--indigo-cool-40)!important}.bg-indigo-cool-30{--background:var(--indigo-cool-30);background:var(--indigo-cool-30)!important}.bg-indigo-cool-20{--background:var(--indigo-cool-20);background:var(--indigo-cool-20)!important}.bg-indigo-cool-10{--background:var(--indigo-cool-10);background:var(--indigo-cool-10)!important}.bg-indigo-cool-5{--background:var(--indigo-cool-5);background:var(--indigo-cool-5)!important}.bg-indigo-warm-90{--background:var(--indigo-warm-90);background:var(--indigo-warm-90)!important}.bg-indigo-warm-80{--background:var(--indigo-warm-80);background:var(--indigo-warm-80)!important}.bg-indigo-warm-70{--background:var(--indigo-warm-70);background:var(--indigo-warm-70)!important}.bg-indigo-warm-60{--background:var(--indigo-warm-60);background:var(--indigo-warm-60)!important}.bg-indigo-warm-50{--background:var(--indigo-warm-50);background:var(--indigo-warm-50)!important}.bg-indigo-warm-40{--background:var(--indigo-warm-40);background:var(--indigo-warm-40)!important}.bg-indigo-warm-30{--background:var(--indigo-warm-30);background:var(--indigo-warm-30)!important}.bg-indigo-warm-20{--background:var(--indigo-warm-20);background:var(--indigo-warm-20)!important}.bg-indigo-warm-10{--background:var(--indigo-warm-10);background:var(--indigo-warm-10)!important}.bg-indigo-warm-5{--background:var(--indigo-warm-5);background:var(--indigo-warm-5)!important}.bg-indigo-vivid-80{--background:var(--indigo-vivid-80);background:var(--indigo-vivid-80)!important}.bg-indigo-vivid-70{--background:var(--indigo-vivid-70);background:var(--indigo-vivid-70)!important}.bg-indigo-vivid-60{--background:var(--indigo-vivid-60);background:var(--indigo-vivid-60)!important}.bg-indigo-vivid-50{--background:var(--indigo-vivid-50);background:var(--indigo-vivid-50)!important}.bg-indigo-vivid-40{--background:var(--indigo-vivid-40);background:var(--indigo-vivid-40)!important}.bg-indigo-vivid-30{--background:var(--indigo-vivid-30);background:var(--indigo-vivid-30)!important}.bg-indigo-vivid-20{--background:var(--indigo-vivid-20);background:var(--indigo-vivid-20)!important}.bg-indigo-vivid-10{--background:var(--indigo-vivid-10);background:var(--indigo-vivid-10)!important}.bg-indigo-vivid-5{--background:var(--indigo-vivid-5);background:var(--indigo-vivid-5)!important}.bg-indigo-cool-vivid-80{--background:var(--indigo-cool-vivid-80);background:var(--indigo-cool-vivid-80)!important}.bg-indigo-cool-vivid-70{--background:var(--indigo-cool-vivid-70);background:var(--indigo-cool-vivid-70)!important}.bg-indigo-cool-vivid-60{--background:var(--indigo-cool-vivid-60);background:var(--indigo-cool-vivid-60)!important}.bg-indigo-cool-vivid-50{--background:var(--indigo-cool-vivid-50);background:var(--indigo-cool-vivid-50)!important}.bg-indigo-cool-vivid-40{--background:var(--indigo-cool-vivid-40);background:var(--indigo-cool-vivid-40)!important}.bg-indigo-cool-vivid-30{--background:var(--indigo-cool-vivid-30);background:var(--indigo-cool-vivid-30)!important}.bg-indigo-cool-vivid-20{--background:var(--indigo-cool-vivid-20);background:var(--indigo-cool-vivid-20)!important}.bg-indigo-cool-vivid-10{--background:var(--indigo-cool-vivid-10);background:var(--indigo-cool-vivid-10)!important}.bg-indigo-cool-vivid-5{--background:var(--indigo-cool-vivid-5);background:var(--indigo-cool-vivid-5)!important}.bg-indigo-warm-vivid-80{--background:var(--indigo-warm-vivid-80);background:var(--indigo-warm-vivid-80)!important}.bg-indigo-warm-vivid-70{--background:var(--indigo-warm-vivid-70);background:var(--indigo-warm-vivid-70)!important}.bg-indigo-warm-vivid-60{--background:var(--indigo-warm-vivid-60);background:var(--indigo-warm-vivid-60)!important}.bg-indigo-warm-vivid-50{--background:var(--indigo-warm-vivid-50);background:var(--indigo-warm-vivid-50)!important}.bg-indigo-warm-vivid-40{--background:var(--indigo-warm-vivid-40);background:var(--indigo-warm-vivid-40)!important}.bg-indigo-warm-vivid-30{--background:var(--indigo-warm-vivid-30);background:var(--indigo-warm-vivid-30)!important}.bg-indigo-warm-vivid-20{--background:var(--indigo-warm-vivid-20);background:var(--indigo-warm-vivid-20)!important}.bg-indigo-warm-vivid-10{--background:var(--indigo-warm-vivid-10);background:var(--indigo-warm-vivid-10)!important}.bg-indigo-warm-vivid-5{--background:var(--indigo-warm-vivid-5);background:var(--indigo-warm-vivid-5)!important}.bg-magenta-90{--background:var(--magenta-90);background:var(--magenta-90)!important}.bg-magenta-80{--background:var(--magenta-80);background:var(--magenta-80)!important}.bg-magenta-70{--background:var(--magenta-70);background:var(--magenta-70)!important}.bg-magenta-60{--background:var(--magenta-60);background:var(--magenta-60)!important}.bg-magenta-50{--background:var(--magenta-50);background:var(--magenta-50)!important}.bg-magenta-40{--background:var(--magenta-40);background:var(--magenta-40)!important}.bg-magenta-30{--background:var(--magenta-30);background:var(--magenta-30)!important}.bg-magenta-20{--background:var(--magenta-20);background:var(--magenta-20)!important}.bg-magenta-10{--background:var(--magenta-10);background:var(--magenta-10)!important}.bg-magenta-5{--background:var(--magenta-5);background:var(--magenta-5)!important}.bg-magenta-vivid-80{--background:var(--magenta-vivid-80);background:var(--magenta-vivid-80)!important}.bg-magenta-vivid-70{--background:var(--magenta-vivid-70);background:var(--magenta-vivid-70)!important}.bg-magenta-vivid-60{--background:var(--magenta-vivid-60);background:var(--magenta-vivid-60)!important}.bg-magenta-vivid-50{--background:var(--magenta-vivid-50);background:var(--magenta-vivid-50)!important}.bg-magenta-vivid-40{--background:var(--magenta-vivid-40);background:var(--magenta-vivid-40)!important}.bg-magenta-vivid-30{--background:var(--magenta-vivid-30);background:var(--magenta-vivid-30)!important}.bg-magenta-vivid-20{--background:var(--magenta-vivid-20);background:var(--magenta-vivid-20)!important}.bg-magenta-vivid-10{--background:var(--magenta-vivid-10);background:var(--magenta-vivid-10)!important}.bg-magenta-vivid-5{--background:var(--magenta-vivid-5);background:var(--magenta-vivid-5)!important}.bg-mint-90{--background:var(--mint-90);background:var(--mint-90)!important}.bg-mint-80{--background:var(--mint-80);background:var(--mint-80)!important}.bg-mint-70{--background:var(--mint-70);background:var(--mint-70)!important}.bg-mint-60{--background:var(--mint-60);background:var(--mint-60)!important}.bg-mint-50{--background:var(--mint-50);background:var(--mint-50)!important}.bg-mint-40{--background:var(--mint-40);background:var(--mint-40)!important}.bg-mint-30{--background:var(--mint-30);background:var(--mint-30)!important}.bg-mint-20{--background:var(--mint-20);background:var(--mint-20)!important}.bg-mint-10{--background:var(--mint-10);background:var(--mint-10)!important}.bg-mint-5{--background:var(--mint-5);background:var(--mint-5)!important}.bg-mint-cool-90{--background:var(--mint-cool-90);background:var(--mint-cool-90)!important}.bg-mint-cool-80{--background:var(--mint-cool-80);background:var(--mint-cool-80)!important}.bg-mint-cool-70{--background:var(--mint-cool-70);background:var(--mint-cool-70)!important}.bg-mint-cool-60{--background:var(--mint-cool-60);background:var(--mint-cool-60)!important}.bg-mint-cool-50{--background:var(--mint-cool-50);background:var(--mint-cool-50)!important}.bg-mint-cool-40{--background:var(--mint-cool-40);background:var(--mint-cool-40)!important}.bg-mint-cool-30{--background:var(--mint-cool-30);background:var(--mint-cool-30)!important}.bg-mint-cool-20{--background:var(--mint-cool-20);background:var(--mint-cool-20)!important}.bg-mint-cool-10{--background:var(--mint-cool-10);background:var(--mint-cool-10)!important}.bg-mint-cool-5{--background:var(--mint-cool-5);background:var(--mint-cool-5)!important}.bg-mint-vivid-80{--background:var(--mint-vivid-80);background:var(--mint-vivid-80)!important}.bg-mint-vivid-70{--background:var(--mint-vivid-70);background:var(--mint-vivid-70)!important}.bg-mint-vivid-60{--background:var(--mint-vivid-60);background:var(--mint-vivid-60)!important}.bg-mint-vivid-50{--background:var(--mint-vivid-50);background:var(--mint-vivid-50)!important}.bg-mint-vivid-40{--background:var(--mint-vivid-40);background:var(--mint-vivid-40)!important}.bg-mint-vivid-30{--background:var(--mint-vivid-30);background:var(--mint-vivid-30)!important}.bg-mint-vivid-20{--background:var(--mint-vivid-20);background:var(--mint-vivid-20)!important}.bg-mint-vivid-10{--background:var(--mint-vivid-10);background:var(--mint-vivid-10)!important}.bg-mint-vivid-5{--background:var(--mint-vivid-5);background:var(--mint-vivid-5)!important}.bg-mint-cool-vivid-80{--background:var(--mint-cool-vivid-80);background:var(--mint-cool-vivid-80)!important}.bg-mint-cool-vivid-70{--background:var(--mint-cool-vivid-70);background:var(--mint-cool-vivid-70)!important}.bg-mint-cool-vivid-60{--background:var(--mint-cool-vivid-60);background:var(--mint-cool-vivid-60)!important}.bg-mint-cool-vivid-50{--background:var(--mint-cool-vivid-50);background:var(--mint-cool-vivid-50)!important}.bg-mint-cool-vivid-40{--background:var(--mint-cool-vivid-40);background:var(--mint-cool-vivid-40)!important}.bg-mint-cool-vivid-30{--background:var(--mint-cool-vivid-30);background:var(--mint-cool-vivid-30)!important}.bg-mint-cool-vivid-20{--background:var(--mint-cool-vivid-20);background:var(--mint-cool-vivid-20)!important}.bg-mint-cool-vivid-10{--background:var(--mint-cool-vivid-10);background:var(--mint-cool-vivid-10)!important}.bg-mint-cool-vivid-5{--background:var(--mint-cool-vivid-5);background:var(--mint-cool-vivid-5)!important}.bg-orange-90{--background:var(--orange-90);background:var(--orange-90)!important}.bg-orange-80{--background:var(--orange-80);background:var(--orange-80)!important}.bg-orange-70{--background:var(--orange-70);background:var(--orange-70)!important}.bg-orange-60{--background:var(--orange-60);background:var(--orange-60)!important}.bg-orange-50{--background:var(--orange-50);background:var(--orange-50)!important}.bg-orange-40{--background:var(--orange-40);background:var(--orange-40)!important}.bg-orange-30{--background:var(--orange-30);background:var(--orange-30)!important}.bg-orange-20{--background:var(--orange-20);background:var(--orange-20)!important}.bg-orange-10{--background:var(--orange-10);background:var(--orange-10)!important}.bg-orange-5{--background:var(--orange-5);background:var(--orange-5)!important}.bg-orange-warm-90{--background:var(--orange-warm-90);background:var(--orange-warm-90)!important}.bg-orange-warm-80{--background:var(--orange-warm-80);background:var(--orange-warm-80)!important}.bg-orange-warm-70{--background:var(--orange-warm-70);background:var(--orange-warm-70)!important}.bg-orange-warm-60{--background:var(--orange-warm-60);background:var(--orange-warm-60)!important}.bg-orange-warm-50{--background:var(--orange-warm-50);background:var(--orange-warm-50)!important}.bg-orange-warm-40{--background:var(--orange-warm-40);background:var(--orange-warm-40)!important}.bg-orange-warm-30{--background:var(--orange-warm-30);background:var(--orange-warm-30)!important}.bg-orange-warm-20{--background:var(--orange-warm-20);background:var(--orange-warm-20)!important}.bg-orange-warm-10{--background:var(--orange-warm-10);background:var(--orange-warm-10)!important}.bg-orange-warm-5{--background:var(--orange-warm-5);background:var(--orange-warm-5)!important}.bg-orange-vivid-80{--background:var(--orange-vivid-80);background:var(--orange-vivid-80)!important}.bg-orange-vivid-70{--background:var(--orange-vivid-70);background:var(--orange-vivid-70)!important}.bg-orange-vivid-60{--background:var(--orange-vivid-60);background:var(--orange-vivid-60)!important}.bg-orange-vivid-50{--background:var(--orange-vivid-50);background:var(--orange-vivid-50)!important}.bg-orange-vivid-40{--background:var(--orange-vivid-40);background:var(--orange-vivid-40)!important}.bg-orange-vivid-30{--background:var(--orange-vivid-30);background:var(--orange-vivid-30)!important}.bg-orange-vivid-20{--background:var(--orange-vivid-20);background:var(--orange-vivid-20)!important}.bg-orange-vivid-10{--background:var(--orange-vivid-10);background:var(--orange-vivid-10)!important}.bg-orange-vivid-5{--background:var(--orange-vivid-5);background:var(--orange-vivid-5)!important}.bg-orange-warm-vivid-80{--background:var(--orange-warm-vivid-80);background:var(--orange-warm-vivid-80)!important}.bg-orange-warm-vivid-70{--background:var(--orange-warm-vivid-70);background:var(--orange-warm-vivid-70)!important}.bg-orange-warm-vivid-60{--background:var(--orange-warm-vivid-60);background:var(--orange-warm-vivid-60)!important}.bg-orange-warm-vivid-50{--background:var(--orange-warm-vivid-50);background:var(--orange-warm-vivid-50)!important}.bg-orange-warm-vivid-40{--background:var(--orange-warm-vivid-40);background:var(--orange-warm-vivid-40)!important}.bg-orange-warm-vivid-30{--background:var(--orange-warm-vivid-30);background:var(--orange-warm-vivid-30)!important}.bg-orange-warm-vivid-20{--background:var(--orange-warm-vivid-20);background:var(--orange-warm-vivid-20)!important}.bg-orange-warm-vivid-10{--background:var(--orange-warm-vivid-10);background:var(--orange-warm-vivid-10)!important}.bg-orange-warm-vivid-5{--background:var(--orange-warm-vivid-5);background:var(--orange-warm-vivid-5)!important}.bg-pure-100{--background:var(--pure-100);background:var(--pure-100)!important}.bg-pure-0{--background:var(--pure-0);background:var(--pure-0)!important}.text-pure-0{color:var(--pure-0)!important}.bg-red-90{--background:var(--red-90);background:var(--red-90)!important}.bg-red-80{--background:var(--red-80);background:var(--red-80)!important}.bg-red-70{--background:var(--red-70);background:var(--red-70)!important}.bg-red-60{--background:var(--red-60);background:var(--red-60)!important}.bg-red-50{--background:var(--red-50);background:var(--red-50)!important}.bg-red-40{--background:var(--red-40);background:var(--red-40)!important}.bg-red-30{--background:var(--red-30);background:var(--red-30)!important}.bg-red-20{--background:var(--red-20);background:var(--red-20)!important}.bg-red-10{--background:var(--red-10);background:var(--red-10)!important}.bg-red-5{--background:var(--red-5);background:var(--red-5)!important}.bg-red-cool-90{--background:var(--red-cool-90);background:var(--red-cool-90)!important}.bg-red-cool-80{--background:var(--red-cool-80);background:var(--red-cool-80)!important}.bg-red-cool-70{--background:var(--red-cool-70);background:var(--red-cool-70)!important}.bg-red-cool-60{--background:var(--red-cool-60);background:var(--red-cool-60)!important}.bg-red-cool-50{--background:var(--red-cool-50);background:var(--red-cool-50)!important}.bg-red-cool-40{--background:var(--red-cool-40);background:var(--red-cool-40)!important}.bg-red-cool-30{--background:var(--red-cool-30);background:var(--red-cool-30)!important}.bg-red-cool-20{--background:var(--red-cool-20);background:var(--red-cool-20)!important}.bg-red-cool-10{--background:var(--red-cool-10);background:var(--red-cool-10)!important}.bg-red-cool-5{--background:var(--red-cool-5);background:var(--red-cool-5)!important}.bg-red-warm-90{--background:var(--red-warm-90);background:var(--red-warm-90)!important}.bg-red-warm-80{--background:var(--red-warm-80);background:var(--red-warm-80)!important}.bg-red-warm-70{--background:var(--red-warm-70);background:var(--red-warm-70)!important}.bg-red-warm-60{--background:var(--red-warm-60);background:var(--red-warm-60)!important}.bg-red-warm-50{--background:var(--red-warm-50);background:var(--red-warm-50)!important}.bg-red-warm-40{--background:var(--red-warm-40);background:var(--red-warm-40)!important}.bg-red-warm-30{--background:var(--red-warm-30);background:var(--red-warm-30)!important}.bg-red-warm-20{--background:var(--red-warm-20);background:var(--red-warm-20)!important}.bg-red-warm-10{--background:var(--red-warm-10);background:var(--red-warm-10)!important}.bg-red-warm-5{--background:var(--red-warm-5);background:var(--red-warm-5)!important}.bg-red-vivid-80{--background:var(--red-vivid-80);background:var(--red-vivid-80)!important}.bg-red-vivid-70{--background:var(--red-vivid-70);background:var(--red-vivid-70)!important}.bg-red-vivid-60{--background:var(--red-vivid-60);background:var(--red-vivid-60)!important}.bg-red-vivid-50{--background:var(--red-vivid-50);background:var(--red-vivid-50)!important}.bg-red-vivid-40{--background:var(--red-vivid-40);background:var(--red-vivid-40)!important}.bg-red-vivid-30{--background:var(--red-vivid-30);background:var(--red-vivid-30)!important}.bg-red-vivid-20{--background:var(--red-vivid-20);background:var(--red-vivid-20)!important}.bg-red-vivid-10{--background:var(--red-vivid-10);background:var(--red-vivid-10)!important}.bg-red-vivid-5{--background:var(--red-vivid-5);background:var(--red-vivid-5)!important}.bg-red-cool-vivid-80{--background:var(--red-cool-vivid-80);background:var(--red-cool-vivid-80)!important}.bg-red-cool-vivid-70{--background:var(--red-cool-vivid-70);background:var(--red-cool-vivid-70)!important}.bg-red-cool-vivid-60{--background:var(--red-cool-vivid-60);background:var(--red-cool-vivid-60)!important}.bg-red-cool-vivid-50{--background:var(--red-cool-vivid-50);background:var(--red-cool-vivid-50)!important}.bg-red-cool-vivid-40{--background:var(--red-cool-vivid-40);background:var(--red-cool-vivid-40)!important}.bg-red-cool-vivid-30{--background:var(--red-cool-vivid-30);background:var(--red-cool-vivid-30)!important}.bg-red-cool-vivid-20{--background:var(--red-cool-vivid-20);background:var(--red-cool-vivid-20)!important}.bg-red-cool-vivid-10{--background:var(--red-cool-vivid-10);background:var(--red-cool-vivid-10)!important}.bg-red-cool-vivid-5{--background:var(--red-cool-vivid-5);background:var(--red-cool-vivid-5)!important}.bg-red-warm-vivid-80{--background:var(--red-warm-vivid-80);background:var(--red-warm-vivid-80)!important}.bg-red-warm-vivid-70{--background:var(--red-warm-vivid-70);background:var(--red-warm-vivid-70)!important}.bg-red-warm-vivid-60{--background:var(--red-warm-vivid-60);background:var(--red-warm-vivid-60)!important}.bg-red-warm-vivid-50{--background:var(--red-warm-vivid-50);background:var(--red-warm-vivid-50)!important}.bg-red-warm-vivid-40{--background:var(--red-warm-vivid-40);background:var(--red-warm-vivid-40)!important}.bg-red-warm-vivid-30{--background:var(--red-warm-vivid-30);background:var(--red-warm-vivid-30)!important}.bg-red-warm-vivid-20{--background:var(--red-warm-vivid-20);background:var(--red-warm-vivid-20)!important}.bg-red-warm-vivid-10{--background:var(--red-warm-vivid-10);background:var(--red-warm-vivid-10)!important}.bg-red-warm-vivid-5{--background:var(--red-warm-vivid-5);background:var(--red-warm-vivid-5)!important}.bg-violet-90{--background:var(--violet-90);background:var(--violet-90)!important}.bg-violet-80{--background:var(--violet-80);background:var(--violet-80)!important}.bg-violet-70{--background:var(--violet-70);background:var(--violet-70)!important}.bg-violet-60{--background:var(--violet-60);background:var(--violet-60)!important}.bg-violet-50{--background:var(--violet-50);background:var(--violet-50)!important}.bg-violet-40{--background:var(--violet-40);background:var(--violet-40)!important}.bg-violet-30{--background:var(--violet-30);background:var(--violet-30)!important}.bg-violet-20{--background:var(--violet-20);background:var(--violet-20)!important}.bg-violet-10{--background:var(--violet-10);background:var(--violet-10)!important}.bg-violet-5{--background:var(--violet-5);background:var(--violet-5)!important}.bg-violet-warm-90{--background:var(--violet-warm-90);background:var(--violet-warm-90)!important}.bg-violet-warm-80{--background:var(--violet-warm-80);background:var(--violet-warm-80)!important}.bg-violet-warm-70{--background:var(--violet-warm-70);background:var(--violet-warm-70)!important}.bg-violet-warm-60{--background:var(--violet-warm-60);background:var(--violet-warm-60)!important}.bg-violet-warm-50{--background:var(--violet-warm-50);background:var(--violet-warm-50)!important}.bg-violet-warm-40{--background:var(--violet-warm-40);background:var(--violet-warm-40)!important}.bg-violet-warm-30{--background:var(--violet-warm-30);background:var(--violet-warm-30)!important}.bg-violet-warm-20{--background:var(--violet-warm-20);background:var(--violet-warm-20)!important}.bg-violet-warm-10{--background:var(--violet-warm-10);background:var(--violet-warm-10)!important}.bg-violet-warm-5{--background:var(--violet-warm-5);background:var(--violet-warm-5)!important}.bg-violet-vivid-80{--background:var(--violet-vivid-80);background:var(--violet-vivid-80)!important}.bg-violet-vivid-70{--background:var(--violet-vivid-70);background:var(--violet-vivid-70)!important}.bg-violet-vivid-60{--background:var(--violet-vivid-60);background:var(--violet-vivid-60)!important}.bg-violet-vivid-50{--background:var(--violet-vivid-50);background:var(--violet-vivid-50)!important}.bg-violet-vivid-40{--background:var(--violet-vivid-40);background:var(--violet-vivid-40)!important}.bg-violet-vivid-30{--background:var(--violet-vivid-30);background:var(--violet-vivid-30)!important}.bg-violet-vivid-20{--background:var(--violet-vivid-20);background:var(--violet-vivid-20)!important}.bg-violet-vivid-10{--background:var(--violet-vivid-10);background:var(--violet-vivid-10)!important}.bg-violet-vivid-5{--background:var(--violet-vivid-5);background:var(--violet-vivid-5)!important}.bg-violet-warm-vivid-80{--background:var(--violet-warm-vivid-80);background:var(--violet-warm-vivid-80)!important}.bg-violet-warm-vivid-70{--background:var(--violet-warm-vivid-70);background:var(--violet-warm-vivid-70)!important}.bg-violet-warm-vivid-60{--background:var(--violet-warm-vivid-60);background:var(--violet-warm-vivid-60)!important}.bg-violet-warm-vivid-50{--background:var(--violet-warm-vivid-50);background:var(--violet-warm-vivid-50)!important}.bg-violet-warm-vivid-40{--background:var(--violet-warm-vivid-40);background:var(--violet-warm-vivid-40)!important}.bg-violet-warm-vivid-30{--background:var(--violet-warm-vivid-30);background:var(--violet-warm-vivid-30)!important}.bg-violet-warm-vivid-20{--background:var(--violet-warm-vivid-20);background:var(--violet-warm-vivid-20)!important}.bg-violet-warm-vivid-10{--background:var(--violet-warm-vivid-10);background:var(--violet-warm-vivid-10)!important}.bg-violet-warm-vivid-5{--background:var(--violet-warm-vivid-5);background:var(--violet-warm-vivid-5)!important}.bg-yellow-90{--background:var(--yellow-90);background:var(--yellow-90)!important}.bg-yellow-80{--background:var(--yellow-80);background:var(--yellow-80)!important}.bg-yellow-70{--background:var(--yellow-70);background:var(--yellow-70)!important}.bg-yellow-60{--background:var(--yellow-60);background:var(--yellow-60)!important}.bg-yellow-50{--background:var(--yellow-50);background:var(--yellow-50)!important}.bg-yellow-40{--background:var(--yellow-40);background:var(--yellow-40)!important}.bg-yellow-30{--background:var(--yellow-30);background:var(--yellow-30)!important}.bg-yellow-20{--background:var(--yellow-20);background:var(--yellow-20)!important}.bg-yellow-10{--background:var(--yellow-10);background:var(--yellow-10)!important}.bg-yellow-5{--background:var(--yellow-5);background:var(--yellow-5)!important}.bg-yellow-vivid-80{--background:var(--yellow-vivid-80);background:var(--yellow-vivid-80)!important}.bg-yellow-vivid-70{--background:var(--yellow-vivid-70);background:var(--yellow-vivid-70)!important}.bg-yellow-vivid-60{--background:var(--yellow-vivid-60);background:var(--yellow-vivid-60)!important}.bg-yellow-vivid-50{--background:var(--yellow-vivid-50);background:var(--yellow-vivid-50)!important}.bg-yellow-vivid-40{--background:var(--yellow-vivid-40);background:var(--yellow-vivid-40)!important}.bg-yellow-vivid-30{--background:var(--yellow-vivid-30);background:var(--yellow-vivid-30)!important}.bg-yellow-vivid-20{--background:var(--yellow-vivid-20);background:var(--yellow-vivid-20)!important}.bg-yellow-vivid-10{--background:var(--yellow-vivid-10);background:var(--yellow-vivid-10)!important}.bg-yellow-vivid-5{--background:var(--yellow-vivid-5);background:var(--yellow-vivid-5)!important}.bg-interactive{--background:var(--interactive);background:var(--interactive)!important}.bg-interactive-dark{--background:var(--interactive-dark);background:var(--interactive-dark)!important}.bg-danger{--background:var(--danger);background:var(--danger)!important}.bg-warning{--background:var(--warning);background:var(--warning)!important}.bg-success{--background:var(--success);background:var(--success)!important}.bg-info{--background:var(--info);background:var(--info)!important}.bg-primary-pastel-01{background:var(--color-primary-pastel-01)!important}.bg-primary-pastel-02{background:var(--color-primary-pastel-02)!important}.bg-primary-lighten-01{background:var(--color-primary-lighten-01)!important}.bg-primary-lighten-01,.bg-primary-lighten-02{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-primary-lighten-02{background:var(--color-primary-lighten-02)!important}.bg-primary-default{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark);background:var(--color-primary-default)!important}.text-primary-default{color:var(--color-primary-default)!important}.bg-primary-darken-01{background:var(--color-primary-darken-01)!important}.bg-primary-darken-01,.bg-primary-darken-02{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-primary-darken-02{background:var(--color-primary-darken-02)!important}.bg-secondary-01{background:var(--color-secondary-01)!important}.bg-secondary-02{background:var(--color-secondary-02)!important}.bg-secondary-03{background:var(--color-secondary-03)!important}.bg-secondary-04{background:var(--color-secondary-04)!important}.bg-secondary-05{background:var(--color-secondary-05)!important}.bg-secondary-06{background:var(--color-secondary-06)!important}.bg-secondary-06,.bg-secondary-07{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-secondary-07{background:var(--color-secondary-07)!important}.bg-secondary-08{background:var(--color-secondary-08)!important}.bg-secondary-08,.bg-secondary-09{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-secondary-09{background:var(--color-secondary-09)!important}.bg-highlight{background:var(--color-highlight)!important}.bg-highlight,.bg-support-01{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-support-01{background:var(--color-support-01)!important}.bg-support-02{background:var(--color-support-02)!important}.bg-support-03{background:var(--color-support-03)!important}.bg-support-03,.bg-support-04{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-support-04{background:var(--color-support-04)!important}.bg-support-05{background:var(--color-support-05)!important}.bg-support-06{background:var(--color-support-06)!important}.bg-support-07{background:var(--color-support-07)!important}.bg-support-07,.bg-support-08{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-support-08{background:var(--color-support-08)!important}.bg-support-09{background:var(--color-support-09)!important}.bg-support-10{background:var(--color-support-10)!important}.bg-support-11{background:var(--color-support-11)!important}.text-right{text-align:right!important}.text-nowrap{white-space:nowrap!important}.text-uppercase{text-transform:uppercase!important}.text-medium{font-weight:500!important}.text-bold{font-weight:700!important}.text-base{font-size:var(--font-size-scale-base)!important}.text-down-01{font-size:var(--font-size-scale-down-01)!important}@media (min-width:576px){.text-sm-center{text-align:center!important}.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}}.ease{-webkit-animation-timing-function:ease;animation-timing-function:ease}.ease-in-out{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear,left top,left bottom,from(var(--status-highlight-overlay)),to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay),var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}.disabled,[disabled]{cursor:not-allowed;opacity:var(--disabled)}.disabled *,[disabled] *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(var(--interactive-rgb),var(--hover))),to(rgba(var(--interactive-rgb),var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb),var(--hover)),rgba(var(--interactive-rgb),var(--hover)))}[data-toggle=collapse]:focus{outline:none}[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-upload input{display:none}.br-upload .upload-button{--button-radius:100em;--button-xsmall:24px;--button-small:32px;--button-medium:40px;--button-large:48px;--button-size:var(--button-medium);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:transparent;border:0;border-radius:var(--button-radius);color:var(--interactive);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);height:var(--button-size);-webkit-box-pack:center;-ms-flex-pack:center;border:var(--surface-width-sm) dashed var(--interactive);border-radius:var(--surface-rounder-sm);display:block;font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);justify-content:center;margin-top:var(--spacing-scale-half);min-height:var(--button-size);overflow:hidden;padding:0 var(--spacing-scale-3x);padding-left:var(--spacing-scale-2x);padding-right:var(--spacing-scale-2x);text-align:center;text-align:left;vertical-align:middle;white-space:nowrap;width:auto;width:100%}.br-upload .upload-button,.br-upload .upload-list{max-width:550px;position:relative}.br-upload .upload-list .content{-ms-flex-item-align:center;align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70%}.br-upload .upload-list .support{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.br-upload .br-tooltip{max-width:93%}.br-upload .upload-button:disabled{cursor:not-allowed}.br-upload .upload-button:not(:disabled){--focus-offset:var(--spacing-scale-half)}.br-upload .upload-button:not(:disabled):focus{outline:none}.br-upload .upload-button:not(:disabled):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-upload .upload-button:not(:disabled):not(:disabled):hover{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(var(--interactive-rgb),var(--hover))),to(rgba(var(--interactive-rgb),var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb),var(--hover)),rgba(var(--interactive-rgb),var(--hover)))}.br-upload .upload-button:not(:disabled):not(:disabled):active{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(var(--interactive-rgb),var(--pressed))),to(rgba(var(--interactive-rgb),var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb),var(--pressed)),rgba(var(--interactive-rgb),var(--pressed)))}.br-upload .upload-button.active,.br-upload .upload-button.is-active,.br-upload .upload-button[active]{--hover:var(--hover-dark);background-color:var(--active);color:var(--color-dark)}.br-upload .upload-button.loading{color:transparent!important;cursor:progress}.br-upload .upload-button.loading:not(:disabled):hover{background-image:none}.br-upload .upload-button.loading:before{border-color:var(--interactive) var(--interactive) transparent;border-style:solid}.br-upload .upload-button.loading.danger:before,.br-upload .upload-button.loading.info:before,.br-upload .upload-button.loading.primary:before,.br-upload .upload-button.loading.success:before{border-color:var(--background) var(--background) transparent}.br-upload.success .upload-button{border-color:var(--success)}.br-upload.danger .upload-button{border-color:var(--danger)}.br-upload.warning .upload-button{border-color:var(--warning)}.br-upload.info .upload-button{border-color:var(--info)}:host{display:block}.br-upload br-icon{margin-right:var(--spacing-scale-base)}";
8
8
 
9
- var UploadState;
10
- (function (UploadState) {
11
- UploadState["INFO"] = "info";
12
- UploadState["WARNING"] = "warning";
13
- UploadState["DANGER"] = "danger";
14
- UploadState["SUCCESS"] = "success";
15
- })(UploadState || (UploadState = {}));
16
9
  const Upload = class {
17
10
  constructor(hostRef) {
18
11
  registerInstance(this, hostRef);
@@ -23,14 +16,22 @@ const Upload = class {
23
16
  this.elementInternals = hostRef.$hostElement$.attachInternals();
24
17
  hostRef.$hostElement$["s-ei"] = this.elementInternals;
25
18
  }
19
+ /**
20
+ * Identificador único.
21
+ * Caso não seja fornecido, um ID gerado automaticamente será usado.
22
+ */
23
+ this.customId = `br-upload-${uploadId++}`;
26
24
  /**
27
25
  * Tipos de arquivo permitidos (ex: 'image/*').
28
26
  * Esta propriedade define quais tipos de arquivos podem ser selecionados para upload.
29
27
  */
30
28
  this.accept = '';
31
29
  /**
32
- * Texto descritivo do campo de upload.
33
- * Este é o texto que é mostrado no label do textarea.
30
+ * Rótulo principal do campo de upload.
31
+ * Este texto ajuda usuários de leitores de tela a identificarem o propósito do upload.
32
+ * Exemplos: "Anexar comprovante", "Enviar foto do documento".
33
+ *
34
+ * @default "Envio de arquivo"
34
35
  */
35
36
  this.label = 'Envio de arquivo';
36
37
  /**
@@ -51,16 +52,6 @@ const Upload = class {
51
52
  * como durante o carregamento de dados ou quando o formulário está em um estado inválido.
52
53
  */
53
54
  this.disabled = false;
54
- /**
55
- * Define o estado visual da mensagem.
56
- * Os possíveis valores são:
57
- * - 'info': Mensagem informativa.
58
- * - 'warning': Mensagem de aviso.
59
- * - 'danger': Mensagem de erro ou alerta.
60
- * - 'success': Mensagem de sucesso.
61
- * O valor padrão é 'info'.
62
- */
63
- this.state = UploadState.INFO;
64
55
  /**
65
56
  * Indica se o componente permite a seleção de múltiplos arquivos.
66
57
  * Quando definido como `true`, o usuário pode selecionar mais de um arquivo para upload.
@@ -80,13 +71,13 @@ const Upload = class {
80
71
  handleRemoveFileSelection(file) {
81
72
  const newArrayFilter = Array.from(this.filesSelected).filter((f) => f !== file);
82
73
  this.filesSelected = newArrayFilter;
83
- const fileInput = this.el.shadowRoot.getElementById('single-file');
74
+ const fileInput = this.el.shadowRoot.getElementById(`single-file-${this.customId}`);
84
75
  fileInput.value = '';
85
76
  }
86
77
  renderFilesUploaded() {
87
78
  const fileSizes = this._calculateFileSize(this.filesSelected);
88
79
  return fileSizes.map(({ file, size }) => {
89
- return (h("div", { class: "br-item d-flex", key: file.name }, h("div", { class: "content text-primary-default mr-auto" }, file.name), h("div", { class: "support mr-n2" }, h("span", { class: "" }, size), h("br-button", { shape: "circle", type: "button", "aria-label": "Remover arquivo", onClick: () => this.handleRemoveFileSelection(file) }, h("br-icon", { "icon-name": "fa-solid:trash", "aria-hidden": "true" })))));
80
+ return (h("div", { class: "br-item d-flex", key: file.name, role: "listitem" }, h("div", { class: "content text-primary-default mr-auto" }, file.name), h("div", { class: "support mr-n2" }, h("span", { class: "" }, size), h("br-button", { shape: "circle", type: "button", "aria-label": `Remover arquivo ${file.name}`, onClick: () => this.handleRemoveFileSelection(file) }, h("br-icon", { "icon-name": "fa-solid:trash", "aria-hidden": "true" })))));
90
81
  });
91
82
  }
92
83
  onInputChange(files) {
@@ -131,15 +122,16 @@ const Upload = class {
131
122
  event.preventDefault();
132
123
  }
133
124
  handleFileSelection() {
134
- const fileInput = this.el.shadowRoot.getElementById('single-file');
125
+ const fileInput = this.el.shadowRoot.getElementById(`single-file-${this.customId}`);
135
126
  fileInput.click();
136
127
  }
137
128
  render() {
138
- return (h(Host, { key: '89daa1d20eb69ae0286d24fd8d58903e059b0d8e' }, h("div", { key: '5dcdb3b535b27886550f25b8ecb749e7834ac836', class: this.getCssClassMap() }, h("label", { key: '25c3410df84817ead004aea4909ead77ebfadfd8', class: "upload-label", form: "single-file" }, h("span", { key: 'f28e0e488733fa08695be1c66c07e8eb0a92d090' }, this.label)), h("button", { key: '7aa873b9238d64c557b60d4846d3189b28802d7f', class: "upload-button", type: "button", tabIndex: this.disabled ? -1 : 0, disabled: this.disabled, "aria-label": "Selecionar arquivo para upload", onClick: () => this.handleFileSelection(), onDrop: (event) => this.handleDrop(event), onDragOver: (event) => this.handleDragOver(event) }, h("br-icon", { key: '088a7977d3e191f98b43f9150fde4886d810c80a', "icon-name": "fa-solid:upload", height: "16", "aria-hidden": "true" }), h("span", { key: '37ba22a6651c3bb0db5644021da712d8900d42a3' }, "Selecione o arquivo")), h("input", { key: '1e085832047cfb095f4cb692239d827a734da31b', class: "upload-input", id: "single-file", type: "file", "aria-label": "enviar arquivo", onChange: this.handleInputChange, multiple: this.multiple, disabled: this.disabled, accept: this.accept }), h("div", { key: 'c4a6b6971ca21cd65d193f4dccf3f68ade18cf76', id: "list-files", class: "upload-list" }, this.filesSelected ? this.renderFilesUploaded() : null))));
129
+ return (h(Host, { key: '76ae95a5f45b8fb79fa13d0ffffdb7112b34fab7' }, h("div", { key: '9ff7b87cbe19fae8084a349c698960911b818e52', class: this.getCssClassMap(), id: this.customId }, h("label", { key: '444dc0325e991ae2fe90cff67fa7c2c70f1ab9e1', id: `label-${this.customId}`, class: "upload-label", htmlFor: `single-file-${this.customId}` }, h("span", { key: '272c7952c966b86cb3cb309404df8dbf05225c53' }, this.label)), h("input", { key: '9838831e2bf6322aad1f951739e0c421a227aebc', class: "upload-input", id: `single-file-${this.customId}`, type: "file", onChange: this.handleInputChange, multiple: this.multiple, disabled: this.disabled, accept: this.accept, "aria-labelledby": `label-${this.customId}` }), h("button", { key: '63ed1dc6e26b6c552677c3f7deb6f8ffafc54e8d', class: "upload-button", type: "button", disabled: this.disabled, onClick: () => this.handleFileSelection(), onDrop: (event) => this.handleDrop(event), onDragOver: (event) => this.handleDragOver(event), "aria-describedby": `label-${this.customId}` }, h("br-icon", { key: '3d82dea2a337e0da64df9a9d3fa3e3550dc9c72b', "icon-name": "fa-solid:upload", height: "16", "aria-hidden": "true" }), h("slot", { key: '3a2f5c53fb02fd5754efa80cde0607958b1e308a' }, h("span", { key: '015b7e5128f0409eaec14fe478a9c563d3932e03' }, "Selecione o arquivo"))), this.filesSelected && (h("div", { key: 'c2e272533c19ecbeb8f9698efd565d27ff2d1b27', id: `${this.customId}-list-files`, class: "upload-list", role: "list" }, this.renderFilesUploaded())))));
139
130
  }
140
131
  static get formAssociated() { return true; }
141
132
  get el() { return getElement(this); }
142
133
  };
134
+ let uploadId = 0;
143
135
  Upload.style = uploadCss;
144
136
 
145
137
  export { Upload as br_upload };
@@ -1 +1 @@
1
- {"version":3,"file":"br-upload.entry.js","sources":["../../packages/webcomponents/src/components/upload/upload.scss?tag=br-upload&encapsulation=shadow","../../packages/webcomponents/src/components/upload/upload.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/upload/upload\";\n\n:host {\n display: block;\n}\n\n.br-upload {\n br-icon {\n margin-right: var(--spacing-scale-base);\n }\n}\n","import { AttachInternals, Component, Element, h, Host, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\nenum UploadState {\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger',\n SUCCESS = 'success',\n}\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/upload?tab=designer).\n *\n * @slot default - Descrição do slot\n */\n@Component({\n tag: 'br-upload',\n styleUrl: 'upload.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Upload {\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!: HTMLBrUploadElement\n\n /**\n * Tipos de arquivo permitidos (ex: 'image/*').\n * Esta propriedade define quais tipos de arquivos podem ser selecionados para upload.\n */\n @Prop() accept: string = ''\n\n /**\n * Texto descritivo do campo de upload.\n * Este é o texto que é mostrado no label do textarea.\n */\n @Prop() label: string = 'Envio de arquivo'\n\n /**\n * Evento emitido quando um arquivo é selecionado.\n * Este estado armazena os arquivos que foram selecionados pelo usuário.\n */\n @State() filesSelected: FileList | null = null\n\n /**\n * Referência ao elemento de arquivo selecionado.\n * Este estado armazena o arquivo que foi selecionado para upload.\n */\n @State() file: File | null = null\n\n /**\n * Indica se o componente está desativado.\n * Quando definido como `true`, o campo de upload se torna não interativo,\n * impedindo que o usuário selecione ou envie arquivos.\n * Isso é útil para controlar a interação do usuário em situações específicas,\n * como durante o carregamento de dados ou quando o formulário está em um estado inválido.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Define o estado visual da mensagem.\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) state: string = UploadState.INFO\n\n /**\n * Indica se o componente permite a seleção de múltiplos arquivos.\n * Quando definido como `true`, o usuário pode selecionar mais de um arquivo para upload.\n */\n @Prop() multiple: boolean = false\n\n @AttachInternals() elementInternals: ElementInternals\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-upload': true,\n [this.state]: true,\n }\n }\n\n private handleRemoveFileSelection(file: File) {\n const newArrayFilter = Array.from(this.filesSelected).filter((f) => f !== file)\n this.filesSelected = newArrayFilter as unknown as FileList\n const fileInput = this.el.shadowRoot.getElementById('single-file') as HTMLInputElement\n fileInput.value = ''\n }\n\n private renderFilesUploaded() {\n const fileSizes = this._calculateFileSize(this.filesSelected)\n\n return fileSizes.map(({ file, size }) => {\n return (\n <div class=\"br-item d-flex\" key={file.name}>\n <div class=\"content text-primary-default mr-auto\">{file.name}</div>\n <div class=\"support mr-n2\">\n <span class=\"\">{size}</span>\n <br-button\n shape=\"circle\"\n type=\"button\"\n aria-label=\"Remover arquivo\"\n onClick={() => this.handleRemoveFileSelection(file)}\n >\n <br-icon icon-name=\"fa-solid:trash\" aria-hidden=\"true\"></br-icon>\n </br-button>\n </div>\n </div>\n )\n })\n }\n\n private onInputChange(files: FileList) {\n if (files.length === 1) {\n this.filesSelected = files\n } else if (files.length > 0) {\n this.filesSelected = files\n } else {\n console.error(files.length === 0 ? 'NENHUM ARQUIVO ENVIADO' : 'VOCÊ SÓ PODE ENVIAR UM ARQUIVO POR VEZ')\n\n return false\n }\n }\n\n private _calculateFileSize(files: FileList) {\n return Array.from(files).map((file) => {\n let sOutput = ''\n const aMultiples = ['KB', 'MB', 'GB', 'TB']\n let nMultiple = 0\n let nApprox = file.size / 1024\n\n if (nApprox < 1) {\n sOutput = `${file.size} bytes`\n } else {\n while (nApprox > 1 && nMultiple < aMultiples.length) {\n sOutput = `${nApprox.toFixed(2)} ${aMultiples[nMultiple]}`\n nApprox /= 1024\n nMultiple++\n }\n }\n\n return { file: file, size: sOutput || 0 }\n })\n }\n\n private handleDrop(event: DragEvent) {\n event.preventDefault()\n const files = event.dataTransfer?.files\n if (files && files.length > 0) {\n this.onInputChange(files)\n }\n }\n\n private handleDragOver(event: DragEvent) {\n event.preventDefault()\n }\n\n private handleFileSelection() {\n const fileInput = this.el.shadowRoot.getElementById('single-file') as HTMLInputElement\n fileInput.click()\n }\n\n private readonly handleInputChange = (event: Event) => {\n const target = event.target as HTMLInputElement\n this.onInputChange(target.files)\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <label class=\"upload-label\" form=\"single-file\">\n <span>{this.label}</span>\n </label>\n <button\n class=\"upload-button\"\n type=\"button\"\n tabIndex={this.disabled ? -1 : 0}\n disabled={this.disabled}\n aria-label=\"Selecionar arquivo para upload\"\n onClick={() => this.handleFileSelection()}\n onDrop={(event) => this.handleDrop(event)}\n onDragOver={(event) => this.handleDragOver(event)}\n >\n <br-icon icon-name=\"fa-solid:upload\" height=\"16\" aria-hidden=\"true\"></br-icon>\n <span>Selecione o arquivo</span>\n </button>\n\n <input\n class=\"upload-input\"\n id=\"single-file\"\n type=\"file\"\n aria-label=\"enviar arquivo\"\n onChange={this.handleInputChange}\n multiple={this.multiple}\n disabled={this.disabled}\n accept={this.accept}\n />\n <div id=\"list-files\" class=\"upload-list\">\n {this.filesSelected ? this.renderFilesUploaded() : null}\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-upload.entry.js","sources":["../../packages/webcomponents/src/components/upload/upload.scss?tag=br-upload&encapsulation=shadow","../../packages/webcomponents/src/components/upload/upload.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/upload/upload\";\n\n:host {\n display: block;\n}\n\n.br-upload {\n br-icon {\n margin-right: var(--spacing-scale-base);\n }\n}\n","import { AttachInternals, Component, Element, h, Host, Prop, State } 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/upload?tab=designer).\n *\n * @slot default - Texto personalizado para o botão de upload. Se não fornecido, será exibido \"Selecione o arquivo\" como texto padrão.\n * Use este slot para personalizar o texto do botão de acordo com o contexto do upload, por exemplo: \"Anexar documentos\",\n * \"Enviar imagens\", etc.\n */\n@Component({\n tag: 'br-upload',\n styleUrl: 'upload.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Upload {\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-upload-${uploadId++}`\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!: HTMLBrUploadElement\n\n /**\n * Tipos de arquivo permitidos (ex: 'image/*').\n * Esta propriedade define quais tipos de arquivos podem ser selecionados para upload.\n */\n @Prop() accept: string = ''\n\n /**\n * Rótulo principal do campo de upload.\n * Este texto ajuda usuários de leitores de tela a identificarem o propósito do upload.\n * Exemplos: \"Anexar comprovante\", \"Enviar foto do documento\".\n *\n * @default \"Envio de arquivo\"\n */\n @Prop() label: string = 'Envio de arquivo'\n\n /**\n * Evento emitido quando um arquivo é selecionado.\n * Este estado armazena os arquivos que foram selecionados pelo usuário.\n */\n @State() filesSelected: FileList | null = null\n\n /**\n * Referência ao elemento de arquivo selecionado.\n * Este estado armazena o arquivo que foi selecionado para upload.\n */\n @State() file: File | null = null\n\n /**\n * Indica se o componente está desativado.\n * Quando definido como `true`, o campo de upload se torna não interativo,\n * impedindo que o usuário selecione ou envie arquivos.\n * Isso é útil para controlar a interação do usuário em situações específicas,\n * como durante o carregamento de dados ou quando o formulário está em um estado inválido.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Define o estado visual da mensagem.\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Indica se o componente permite a seleção de múltiplos arquivos.\n * Quando definido como `true`, o usuário pode selecionar mais de um arquivo para upload.\n */\n @Prop() multiple: boolean = false\n\n @AttachInternals() elementInternals: ElementInternals\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-upload': true,\n [this.state]: true,\n }\n }\n\n private handleRemoveFileSelection(file: File) {\n const newArrayFilter = Array.from(this.filesSelected).filter((f) => f !== file)\n this.filesSelected = newArrayFilter as unknown as FileList\n const fileInput = this.el.shadowRoot.getElementById(`single-file-${this.customId}`) as HTMLInputElement\n fileInput.value = ''\n }\n\n private renderFilesUploaded() {\n const fileSizes = this._calculateFileSize(this.filesSelected)\n return fileSizes.map(({ file, size }) => {\n return (\n <div class=\"br-item d-flex\" key={file.name} role=\"listitem\">\n <div class=\"content text-primary-default mr-auto\">{file.name}</div>\n <div class=\"support mr-n2\">\n <span class=\"\">{size}</span>\n <br-button\n shape=\"circle\"\n type=\"button\"\n aria-label={`Remover arquivo ${file.name}`}\n onClick={() => this.handleRemoveFileSelection(file)}\n >\n <br-icon icon-name=\"fa-solid:trash\" aria-hidden=\"true\"></br-icon>\n </br-button>\n </div>\n </div>\n )\n })\n }\n\n private onInputChange(files: FileList) {\n if (files.length === 1) {\n this.filesSelected = files\n } else if (files.length > 0) {\n this.filesSelected = files\n } else {\n console.error(files.length === 0 ? 'NENHUM ARQUIVO ENVIADO' : 'VOCÊ SÓ PODE ENVIAR UM ARQUIVO POR VEZ')\n\n return false\n }\n }\n\n private _calculateFileSize(files: FileList) {\n return Array.from(files).map((file) => {\n let sOutput = ''\n const aMultiples = ['KB', 'MB', 'GB', 'TB']\n let nMultiple = 0\n let nApprox = file.size / 1024\n\n if (nApprox < 1) {\n sOutput = `${file.size} bytes`\n } else {\n while (nApprox > 1 && nMultiple < aMultiples.length) {\n sOutput = `${nApprox.toFixed(2)} ${aMultiples[nMultiple]}`\n nApprox /= 1024\n nMultiple++\n }\n }\n\n return { file: file, size: sOutput || 0 }\n })\n }\n\n private handleDrop(event: DragEvent) {\n event.preventDefault()\n const files = event.dataTransfer?.files\n if (files && files.length > 0) {\n this.onInputChange(files)\n }\n }\n\n private handleDragOver(event: DragEvent) {\n event.preventDefault()\n }\n\n private handleFileSelection() {\n const fileInput = this.el.shadowRoot.getElementById(`single-file-${this.customId}`) as HTMLInputElement\n fileInput.click()\n }\n\n private readonly handleInputChange = (event: Event) => {\n const target = event.target as HTMLInputElement\n this.onInputChange(target.files)\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()} id={this.customId}>\n <label id={`label-${this.customId}`} class=\"upload-label\" htmlFor={`single-file-${this.customId}`}>\n <span>{this.label}</span>\n </label>\n <input\n class=\"upload-input\"\n id={`single-file-${this.customId}`}\n type=\"file\"\n onChange={this.handleInputChange}\n multiple={this.multiple}\n disabled={this.disabled}\n accept={this.accept}\n aria-labelledby={`label-${this.customId}`}\n />\n <button\n class=\"upload-button\"\n type=\"button\"\n disabled={this.disabled}\n onClick={() => this.handleFileSelection()}\n onDrop={(event) => this.handleDrop(event)}\n onDragOver={(event) => this.handleDragOver(event)}\n aria-describedby={`label-${this.customId}`}\n >\n <br-icon icon-name=\"fa-solid:upload\" height=\"16\" aria-hidden=\"true\"></br-icon>\n <slot>\n <span>Selecione o arquivo</span>\n </slot>\n </button>\n {this.filesSelected && (\n <div id={`${this.customId}-list-files`} class=\"upload-list\" role=\"list\">\n {this.renderFilesUploaded()}\n </div>\n )}\n </div>\n </Host>\n )\n }\n}\nlet uploadId = 0\n"],"names":[],"mappings":"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"}
@@ -131,6 +131,10 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
131
131
  return import(
132
132
  /* webpackMode: "lazy" */
133
133
  './br-select.entry.js').then(processMod, consoleError);
134
+ case 'br-sign-in':
135
+ return import(
136
+ /* webpackMode: "lazy" */
137
+ './br-sign-in.entry.js').then(processMod, consoleError);
134
138
  case 'br-step':
135
139
  return import(
136
140
  /* webpackMode: "lazy" */