@govbr-ds/webcomponents 2.0.0-next.2 → 2.0.0-next.20

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 (386) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +193 -97
  3. package/dist/cjs/app-globals-77a217c6.js +11 -0
  4. package/dist/cjs/app-globals-77a217c6.js.map +1 -0
  5. package/dist/cjs/br-avatar.cjs.entry.js +77 -0
  6. package/dist/cjs/br-avatar.cjs.entry.js.map +1 -0
  7. package/dist/cjs/br-button_2.cjs.entry.js +2491 -0
  8. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -0
  9. package/dist/cjs/br-checkbox.cjs.entry.js +76 -0
  10. package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -0
  11. package/dist/cjs/br-dropdown.cjs.entry.js +100 -0
  12. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -0
  13. package/dist/cjs/br-input.cjs.entry.js +150 -0
  14. package/dist/cjs/br-input.cjs.entry.js.map +1 -0
  15. package/dist/cjs/br-item.cjs.entry.js +146 -0
  16. package/dist/cjs/br-item.cjs.entry.js.map +1 -0
  17. package/dist/cjs/br-list.cjs.entry.js +82 -0
  18. package/dist/cjs/br-list.cjs.entry.js.map +1 -0
  19. package/dist/cjs/br-loading.cjs.entry.js +43 -0
  20. package/dist/cjs/br-loading.cjs.entry.js.map +1 -0
  21. package/dist/cjs/br-message.cjs.entry.js +68 -0
  22. package/dist/cjs/br-message.cjs.entry.js.map +1 -0
  23. package/dist/cjs/br-radio.cjs.entry.js +79 -0
  24. package/dist/cjs/br-radio.cjs.entry.js.map +1 -0
  25. package/dist/cjs/br-switch.cjs.entry.js +81 -0
  26. package/dist/cjs/br-switch.cjs.entry.js.map +1 -0
  27. package/dist/cjs/br-tag.cjs.entry.js +88 -0
  28. package/dist/cjs/br-tag.cjs.entry.js.map +1 -0
  29. package/dist/cjs/br-textarea.cjs.entry.js +102 -0
  30. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -0
  31. package/dist/cjs/br-upload.cjs.entry.js +168 -0
  32. package/dist/cjs/br-upload.cjs.entry.js.map +1 -0
  33. package/dist/cjs/index-81c11ce2.js +1864 -0
  34. package/dist/cjs/index-81c11ce2.js.map +1 -0
  35. package/dist/cjs/index.cjs.js +8 -0
  36. package/dist/cjs/index.cjs.js.map +1 -0
  37. package/dist/cjs/inherited-attributes-16f7d388.js +107 -0
  38. package/dist/cjs/inherited-attributes-16f7d388.js.map +1 -0
  39. package/dist/cjs/loader.cjs.js +21 -0
  40. package/dist/cjs/loader.cjs.js.map +1 -0
  41. package/dist/cjs/v4-2a0fe526.js +74 -0
  42. package/dist/cjs/v4-2a0fe526.js.map +1 -0
  43. package/dist/cjs/webcomponents.cjs.js +52 -0
  44. package/dist/cjs/webcomponents.cjs.js.map +1 -0
  45. package/dist/collection/collection-manifest.json +26 -0
  46. package/dist/collection/components/avatar/avatar.css +538 -0
  47. package/dist/collection/components/avatar/avatar.js +222 -0
  48. package/dist/collection/components/avatar/avatar.js.map +1 -0
  49. package/dist/collection/components/button/button.css +800 -0
  50. package/dist/collection/components/button/button.js +236 -0
  51. package/dist/collection/components/button/button.js.map +1 -0
  52. package/dist/collection/components/checkbox/checkbox.css +595 -0
  53. package/dist/collection/components/checkbox/checkbox.js +279 -0
  54. package/dist/collection/components/checkbox/checkbox.js.map +1 -0
  55. package/dist/collection/components/dropdown/dropdown.css +465 -0
  56. package/dist/collection/components/dropdown/dropdown.js +185 -0
  57. package/dist/collection/components/dropdown/dropdown.js.map +1 -0
  58. package/dist/collection/components/icon/icon.css +450 -0
  59. package/dist/collection/components/icon/icon.js +176 -0
  60. package/dist/collection/components/icon/icon.js.map +1 -0
  61. package/dist/collection/components/input/input.css +671 -0
  62. package/dist/collection/components/input/input.js +580 -0
  63. package/dist/collection/components/input/input.js.map +1 -0
  64. package/dist/collection/components/item/item.css +660 -0
  65. package/dist/collection/components/item/item.js +376 -0
  66. package/dist/collection/components/item/item.js.map +1 -0
  67. package/dist/collection/components/list/list.css +562 -0
  68. package/dist/collection/components/list/list.js +138 -0
  69. package/dist/collection/components/list/list.js.map +1 -0
  70. package/dist/collection/components/loading/loading.css +651 -0
  71. package/dist/collection/components/loading/loading.js +119 -0
  72. package/dist/collection/components/loading/loading.js.map +1 -0
  73. package/dist/collection/components/message/message.css +598 -0
  74. package/dist/collection/components/message/message.js +211 -0
  75. package/dist/collection/components/message/message.js.map +1 -0
  76. package/dist/collection/components/radio/radio.css +550 -0
  77. package/dist/collection/components/radio/radio.js +247 -0
  78. package/dist/collection/components/radio/radio.js.map +1 -0
  79. package/dist/collection/components/switch/switch.css +621 -0
  80. package/dist/collection/components/switch/switch.js +320 -0
  81. package/dist/collection/components/switch/switch.js.map +1 -0
  82. package/dist/collection/components/tag/tag.css +643 -0
  83. package/dist/collection/components/tag/tag.js +256 -0
  84. package/dist/collection/components/tag/tag.js.map +1 -0
  85. package/dist/collection/components/textarea/textarea.css +516 -0
  86. package/dist/collection/components/textarea/textarea.js +298 -0
  87. package/dist/collection/components/textarea/textarea.js.map +1 -0
  88. package/dist/collection/components/upload/upload.css +560 -0
  89. package/dist/collection/components/upload/upload.js +469 -0
  90. package/dist/collection/components/upload/upload.js.map +1 -0
  91. package/dist/collection/index.js +2 -0
  92. package/dist/collection/index.js.map +1 -0
  93. package/dist/collection/pages/components/button/index.js +18 -0
  94. package/dist/collection/pages/components/checkbox/index.js +18 -0
  95. package/dist/collection/pages/components/dropdown/index.js +18 -0
  96. package/dist/collection/pages/components/icon/index.js +18 -0
  97. package/dist/collection/pages/components/input/index.js +27 -0
  98. package/dist/collection/pages/components/item/index.js +18 -0
  99. package/dist/collection/pages/components/list/index.js +19 -0
  100. package/dist/collection/pages/components/message/index.js +18 -0
  101. package/dist/collection/pages/components/radio/index.js +18 -0
  102. package/dist/collection/pages/components/switch/index.js +18 -0
  103. package/dist/collection/pages/components/tag/index.js +18 -0
  104. package/dist/collection/pages/components/textarea/index.js +19 -0
  105. package/dist/collection/pages/components/upload/index.js +19 -0
  106. package/dist/collection/pages/scripts/menu.js +221 -0
  107. package/dist/collection/pages/scripts/pageLoader.js +180 -0
  108. package/dist/collection/scripts/menu.js +146 -0
  109. package/dist/collection/utils/inherited-attributes.js +102 -0
  110. package/dist/collection/utils/inherited-attributes.js.map +1 -0
  111. package/dist/collection/utils/interfaces.js +2 -0
  112. package/dist/collection/utils/interfaces.js.map +1 -0
  113. package/dist/collection/utils/unique-id-generator.js +13 -0
  114. package/dist/collection/utils/unique-id-generator.js.map +1 -0
  115. package/dist/components/br-avatar.d.ts +11 -0
  116. package/dist/components/br-avatar.js +6 -0
  117. package/dist/components/br-avatar.js.map +1 -0
  118. package/dist/components/br-button.d.ts +11 -0
  119. package/dist/components/br-button.js +6 -0
  120. package/dist/components/br-button.js.map +1 -0
  121. package/dist/components/br-checkbox.d.ts +11 -0
  122. package/dist/components/br-checkbox.js +6 -0
  123. package/dist/components/br-checkbox.js.map +1 -0
  124. package/dist/components/br-dropdown.d.ts +11 -0
  125. package/dist/components/br-dropdown.js +6 -0
  126. package/dist/components/br-dropdown.js.map +1 -0
  127. package/dist/components/br-icon.d.ts +11 -0
  128. package/dist/components/br-icon.js +6 -0
  129. package/dist/components/br-icon.js.map +1 -0
  130. package/dist/components/br-input.d.ts +11 -0
  131. package/dist/components/br-input.js +6 -0
  132. package/dist/components/br-input.js.map +1 -0
  133. package/dist/components/br-item.d.ts +11 -0
  134. package/dist/components/br-item.js +6 -0
  135. package/dist/components/br-item.js.map +1 -0
  136. package/dist/components/br-list.d.ts +11 -0
  137. package/dist/components/br-list.js +6 -0
  138. package/dist/components/br-list.js.map +1 -0
  139. package/dist/components/br-loading.d.ts +11 -0
  140. package/dist/components/br-loading.js +6 -0
  141. package/dist/components/br-loading.js.map +1 -0
  142. package/dist/components/br-message.d.ts +11 -0
  143. package/dist/components/br-message.js +6 -0
  144. package/dist/components/br-message.js.map +1 -0
  145. package/dist/components/br-radio.d.ts +11 -0
  146. package/dist/components/br-radio.js +6 -0
  147. package/dist/components/br-radio.js.map +1 -0
  148. package/dist/components/br-switch.d.ts +11 -0
  149. package/dist/components/br-switch.js +6 -0
  150. package/dist/components/br-switch.js.map +1 -0
  151. package/dist/components/br-tag.d.ts +11 -0
  152. package/dist/components/br-tag.js +6 -0
  153. package/dist/components/br-tag.js.map +1 -0
  154. package/dist/components/br-textarea.d.ts +11 -0
  155. package/dist/components/br-textarea.js +6 -0
  156. package/dist/components/br-textarea.js.map +1 -0
  157. package/dist/components/br-upload.d.ts +11 -0
  158. package/dist/components/br-upload.js +6 -0
  159. package/dist/components/br-upload.js.map +1 -0
  160. package/dist/components/index.d.ts +33 -0
  161. package/dist/components/index.js +6 -0
  162. package/dist/components/index.js.map +1 -0
  163. package/dist/components/p-2d8e59f6.js +7 -0
  164. package/dist/components/p-2d8e59f6.js.map +1 -0
  165. package/dist/components/p-64831033.js +17 -0
  166. package/dist/components/p-64831033.js.map +1 -0
  167. package/dist/components/p-74a4eb38.js +6 -0
  168. package/dist/components/p-74a4eb38.js.map +1 -0
  169. package/dist/components/p-d5a8d30c.js +6 -0
  170. package/dist/components/p-d5a8d30c.js.map +1 -0
  171. package/dist/components/p-e4af8eac.js +6 -0
  172. package/dist/components/p-e4af8eac.js.map +1 -0
  173. package/dist/esm/app-globals-72548b13.js +9 -0
  174. package/dist/esm/app-globals-72548b13.js.map +1 -0
  175. package/dist/esm/br-avatar.entry.js +73 -0
  176. package/dist/esm/br-avatar.entry.js.map +1 -0
  177. package/dist/esm/br-button_2.entry.js +2486 -0
  178. package/dist/esm/br-button_2.entry.js.map +1 -0
  179. package/dist/esm/br-checkbox.entry.js +72 -0
  180. package/dist/esm/br-checkbox.entry.js.map +1 -0
  181. package/dist/esm/br-dropdown.entry.js +96 -0
  182. package/dist/esm/br-dropdown.entry.js.map +1 -0
  183. package/dist/esm/br-input.entry.js +146 -0
  184. package/dist/esm/br-input.entry.js.map +1 -0
  185. package/dist/esm/br-item.entry.js +142 -0
  186. package/dist/esm/br-item.entry.js.map +1 -0
  187. package/dist/esm/br-list.entry.js +78 -0
  188. package/dist/esm/br-list.entry.js.map +1 -0
  189. package/dist/esm/br-loading.entry.js +39 -0
  190. package/dist/esm/br-loading.entry.js.map +1 -0
  191. package/dist/esm/br-message.entry.js +64 -0
  192. package/dist/esm/br-message.entry.js.map +1 -0
  193. package/dist/esm/br-radio.entry.js +75 -0
  194. package/dist/esm/br-radio.entry.js.map +1 -0
  195. package/dist/esm/br-switch.entry.js +77 -0
  196. package/dist/esm/br-switch.entry.js.map +1 -0
  197. package/dist/esm/br-tag.entry.js +84 -0
  198. package/dist/esm/br-tag.entry.js.map +1 -0
  199. package/dist/esm/br-textarea.entry.js +98 -0
  200. package/dist/esm/br-textarea.entry.js.map +1 -0
  201. package/dist/esm/br-upload.entry.js +164 -0
  202. package/dist/esm/br-upload.entry.js.map +1 -0
  203. package/dist/esm/index-aab4a630.js +1834 -0
  204. package/dist/esm/index-aab4a630.js.map +1 -0
  205. package/dist/esm/index.js +6 -0
  206. package/dist/esm/index.js.map +1 -0
  207. package/dist/esm/inherited-attributes-553a7c36.js +105 -0
  208. package/dist/esm/inherited-attributes-553a7c36.js.map +1 -0
  209. package/dist/esm/loader.js +17 -0
  210. package/dist/esm/loader.js.map +1 -0
  211. package/dist/esm/polyfills/core-js.js +11 -0
  212. package/dist/esm/polyfills/dom.js +79 -0
  213. package/dist/esm/polyfills/es5-html-element.js +1 -0
  214. package/dist/esm/polyfills/index.js +34 -0
  215. package/dist/esm/polyfills/system.js +6 -0
  216. package/dist/esm/v4-c99c1585.js +72 -0
  217. package/dist/esm/v4-c99c1585.js.map +1 -0
  218. package/dist/esm/webcomponents.js +47 -0
  219. package/dist/esm/webcomponents.js.map +1 -0
  220. package/dist/esm-es5/app-globals-72548b13.js +6 -0
  221. package/dist/esm-es5/app-globals-72548b13.js.map +1 -0
  222. package/dist/esm-es5/br-avatar.entry.js +6 -0
  223. package/dist/esm-es5/br-avatar.entry.js.map +1 -0
  224. package/dist/esm-es5/br-button_2.entry.js +17 -0
  225. package/dist/esm-es5/br-button_2.entry.js.map +1 -0
  226. package/dist/esm-es5/br-checkbox.entry.js +6 -0
  227. package/dist/esm-es5/br-checkbox.entry.js.map +1 -0
  228. package/dist/esm-es5/br-dropdown.entry.js +6 -0
  229. package/dist/esm-es5/br-dropdown.entry.js.map +1 -0
  230. package/dist/esm-es5/br-input.entry.js +6 -0
  231. package/dist/esm-es5/br-input.entry.js.map +1 -0
  232. package/dist/esm-es5/br-item.entry.js +6 -0
  233. package/dist/esm-es5/br-item.entry.js.map +1 -0
  234. package/dist/esm-es5/br-list.entry.js +6 -0
  235. package/dist/esm-es5/br-list.entry.js.map +1 -0
  236. package/dist/esm-es5/br-loading.entry.js +6 -0
  237. package/dist/esm-es5/br-loading.entry.js.map +1 -0
  238. package/dist/esm-es5/br-message.entry.js +6 -0
  239. package/dist/esm-es5/br-message.entry.js.map +1 -0
  240. package/dist/esm-es5/br-radio.entry.js +6 -0
  241. package/dist/esm-es5/br-radio.entry.js.map +1 -0
  242. package/dist/esm-es5/br-switch.entry.js +6 -0
  243. package/dist/esm-es5/br-switch.entry.js.map +1 -0
  244. package/dist/esm-es5/br-tag.entry.js +6 -0
  245. package/dist/esm-es5/br-tag.entry.js.map +1 -0
  246. package/dist/esm-es5/br-textarea.entry.js +6 -0
  247. package/dist/esm-es5/br-textarea.entry.js.map +1 -0
  248. package/dist/esm-es5/br-upload.entry.js +6 -0
  249. package/dist/esm-es5/br-upload.entry.js.map +1 -0
  250. package/dist/esm-es5/index-aab4a630.js +6 -0
  251. package/dist/esm-es5/index-aab4a630.js.map +1 -0
  252. package/dist/esm-es5/index.js +5 -0
  253. package/dist/esm-es5/index.js.map +1 -0
  254. package/dist/esm-es5/inherited-attributes-553a7c36.js +6 -0
  255. package/dist/esm-es5/inherited-attributes-553a7c36.js.map +1 -0
  256. package/dist/esm-es5/loader.js +6 -0
  257. package/dist/esm-es5/loader.js.map +1 -0
  258. package/dist/esm-es5/v4-c99c1585.js +6 -0
  259. package/dist/esm-es5/v4-c99c1585.js.map +1 -0
  260. package/dist/esm-es5/webcomponents.js +6 -0
  261. package/dist/esm-es5/webcomponents.js.map +1 -0
  262. package/dist/index.cjs.js +1 -0
  263. package/dist/index.js +1 -0
  264. package/dist/playwright.config.js +39 -0
  265. package/dist/playwright.config.js.map +1 -0
  266. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/packages/webcomponents/.stencil/playwright.config.d.ts +5 -0
  267. package/dist/types/components/avatar/avatar.d.ts +60 -0
  268. package/dist/types/components/button/button.d.ts +64 -0
  269. package/dist/types/components/checkbox/checkbox.d.ts +78 -0
  270. package/dist/types/components/dropdown/dropdown.d.ts +64 -0
  271. package/dist/types/components/icon/icon.d.ts +58 -0
  272. package/dist/types/components/input/input.d.ts +151 -0
  273. package/dist/types/components/item/item.d.ts +96 -0
  274. package/dist/types/components/list/list.d.ts +34 -0
  275. package/dist/types/components/loading/loading.d.ts +34 -0
  276. package/dist/types/components/message/message.d.ts +62 -0
  277. package/dist/types/components/radio/radio.d.ts +75 -0
  278. package/dist/types/components/switch/switch.d.ts +78 -0
  279. package/dist/types/components/tag/tag.d.ts +73 -0
  280. package/dist/types/components/textarea/textarea.d.ts +66 -0
  281. package/dist/types/components/upload/upload.d.ts +160 -0
  282. package/dist/types/components.d.ts +1682 -0
  283. package/dist/types/index.d.ts +10 -0
  284. package/dist/types/stencil-public-runtime.d.ts +1680 -0
  285. package/dist/types/utils/inherited-attributes.d.ts +20 -0
  286. package/dist/types/utils/interfaces.d.ts +3 -0
  287. package/dist/types/utils/unique-id-generator.d.ts +1 -0
  288. package/dist/webcomponents/index.esm.js +6 -0
  289. package/dist/webcomponents/index.esm.js.map +1 -0
  290. package/dist/webcomponents/p-05343155.system.entry.js +6 -0
  291. package/dist/webcomponents/p-05343155.system.entry.js.map +1 -0
  292. package/dist/webcomponents/p-183614c8.system.entry.js +6 -0
  293. package/dist/webcomponents/p-183614c8.system.entry.js.map +1 -0
  294. package/dist/webcomponents/p-2083ff7b.entry.js +6 -0
  295. package/dist/webcomponents/p-2083ff7b.entry.js.map +1 -0
  296. package/dist/webcomponents/p-24da392a.entry.js +6 -0
  297. package/dist/webcomponents/p-24da392a.entry.js.map +1 -0
  298. package/dist/webcomponents/p-254a2b7c.js +6 -0
  299. package/dist/webcomponents/p-254a2b7c.js.map +1 -0
  300. package/dist/webcomponents/p-28476b17.system.entry.js +6 -0
  301. package/dist/webcomponents/p-28476b17.system.entry.js.map +1 -0
  302. package/dist/webcomponents/p-2c2c8629.js +7 -0
  303. package/dist/webcomponents/p-2c2c8629.js.map +1 -0
  304. package/dist/webcomponents/p-3f00a196.entry.js +6 -0
  305. package/dist/webcomponents/p-3f00a196.entry.js.map +1 -0
  306. package/dist/webcomponents/p-430afeb5.system.js +7 -0
  307. package/dist/webcomponents/p-430afeb5.system.js.map +1 -0
  308. package/dist/webcomponents/p-447c8036.entry.js +6 -0
  309. package/dist/webcomponents/p-447c8036.entry.js.map +1 -0
  310. package/dist/webcomponents/p-5539ffa8.entry.js +6 -0
  311. package/dist/webcomponents/p-5539ffa8.entry.js.map +1 -0
  312. package/dist/webcomponents/p-55604b7f.system.entry.js +6 -0
  313. package/dist/webcomponents/p-55604b7f.system.entry.js.map +1 -0
  314. package/dist/webcomponents/p-61523bc9.entry.js +6 -0
  315. package/dist/webcomponents/p-61523bc9.entry.js.map +1 -0
  316. package/dist/webcomponents/p-626fe2cb.entry.js +6 -0
  317. package/dist/webcomponents/p-626fe2cb.entry.js.map +1 -0
  318. package/dist/webcomponents/p-6a8226b3.system.entry.js +6 -0
  319. package/dist/webcomponents/p-6a8226b3.system.entry.js.map +1 -0
  320. package/dist/webcomponents/p-6e286eba.system.js +6 -0
  321. package/dist/webcomponents/p-6e286eba.system.js.map +1 -0
  322. package/dist/webcomponents/p-71be2e3f.system.entry.js +6 -0
  323. package/dist/webcomponents/p-71be2e3f.system.entry.js.map +1 -0
  324. package/dist/webcomponents/p-74a4eb38.js +6 -0
  325. package/dist/webcomponents/p-74a4eb38.js.map +1 -0
  326. package/dist/webcomponents/p-7a4e1265.system.entry.js +6 -0
  327. package/dist/webcomponents/p-7a4e1265.system.entry.js.map +1 -0
  328. package/dist/webcomponents/p-8039a644.system.entry.js +6 -0
  329. package/dist/webcomponents/p-8039a644.system.entry.js.map +1 -0
  330. package/dist/webcomponents/p-842b2513.entry.js +6 -0
  331. package/dist/webcomponents/p-842b2513.entry.js.map +1 -0
  332. package/dist/webcomponents/p-8f156fc4.system.entry.js +6 -0
  333. package/dist/webcomponents/p-8f156fc4.system.entry.js.map +1 -0
  334. package/dist/webcomponents/p-90e2e623.system.js +6 -0
  335. package/dist/webcomponents/p-90e2e623.system.js.map +1 -0
  336. package/dist/webcomponents/p-9f0d01d1.entry.js +6 -0
  337. package/dist/webcomponents/p-9f0d01d1.entry.js.map +1 -0
  338. package/dist/webcomponents/p-a71689a5.system.js +6 -0
  339. package/dist/webcomponents/p-a71689a5.system.js.map +1 -0
  340. package/dist/webcomponents/p-ae629243.system.entry.js +6 -0
  341. package/dist/webcomponents/p-ae629243.system.entry.js.map +1 -0
  342. package/dist/webcomponents/p-b88a5d9a.system.js +6 -0
  343. package/dist/webcomponents/p-b88a5d9a.system.js.map +1 -0
  344. package/dist/webcomponents/p-b9fd2bc0.system.entry.js +6 -0
  345. package/dist/webcomponents/p-b9fd2bc0.system.entry.js.map +1 -0
  346. package/dist/webcomponents/p-baad00f8.system.entry.js +6 -0
  347. package/dist/webcomponents/p-baad00f8.system.entry.js.map +1 -0
  348. package/dist/webcomponents/p-d174c8cd.entry.js +6 -0
  349. package/dist/webcomponents/p-d174c8cd.entry.js.map +1 -0
  350. package/dist/webcomponents/p-d5a8d30c.js +6 -0
  351. package/dist/webcomponents/p-d5a8d30c.js.map +1 -0
  352. package/dist/webcomponents/p-d83e2172.system.entry.js +17 -0
  353. package/dist/webcomponents/p-d83e2172.system.entry.js.map +1 -0
  354. package/dist/webcomponents/p-dcf41d91.entry.js +6 -0
  355. package/dist/webcomponents/p-dcf41d91.entry.js.map +1 -0
  356. package/dist/webcomponents/p-e027fca2.entry.js +6 -0
  357. package/dist/webcomponents/p-e027fca2.entry.js.map +1 -0
  358. package/dist/webcomponents/p-e6d921ef.entry.js +17 -0
  359. package/dist/webcomponents/p-e6d921ef.entry.js.map +1 -0
  360. package/dist/webcomponents/p-e751c991.system.js +6 -0
  361. package/dist/webcomponents/p-e751c991.system.js.map +1 -0
  362. package/dist/webcomponents/p-e8b5b14f.entry.js +6 -0
  363. package/dist/webcomponents/p-e8b5b14f.entry.js.map +1 -0
  364. package/dist/webcomponents/p-f5e674ba.system.entry.js +6 -0
  365. package/dist/webcomponents/p-f5e674ba.system.entry.js.map +1 -0
  366. package/dist/webcomponents/webcomponents.esm.js +6 -0
  367. package/dist/webcomponents/webcomponents.esm.js.map +1 -0
  368. package/dist/webcomponents/webcomponents.js +127 -0
  369. package/hydrate/index.d.ts +242 -0
  370. package/hydrate/index.js +22120 -0
  371. package/hydrate/index.mjs +22112 -0
  372. package/hydrate/package.json +12 -0
  373. package/loader/cdn.js +6 -0
  374. package/loader/index.cjs.js +6 -0
  375. package/loader/index.d.ts +24 -0
  376. package/loader/index.es2017.js +6 -0
  377. package/loader/index.js +7 -0
  378. package/loader/package.json +11 -0
  379. package/package.json +54 -89
  380. package/vscode-data.json +915 -0
  381. package/dist/webcomponents.common.js +0 -23958
  382. package/dist/webcomponents.common.js.map +0 -1
  383. package/dist/webcomponents.umd.js +0 -23969
  384. package/dist/webcomponents.umd.js.map +0 -1
  385. package/dist/webcomponents.umd.min.js +0 -8
  386. package/dist/webcomponents.umd.min.js.map +0 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2022 SERPRO
3
+ Copyright (c) 2018
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,27 +1,66 @@
1
1
  # Web Components GovBR-DS
2
2
 
3
- Biblioteca baseada no [GovBR-DS](https://gov.br/ds 'GovBR-DS') e construída usando Web Components para ser independente de frameworks.
3
+ Biblioteca de Web Components do [GovBR-DS](https://gov.br/ds).
4
+
5
+ ## Objetivo
6
+
7
+ Disponibilizar uma biblioteca de componentes baseada no [GovBR-DS](https://gov.br/ds 'GovBR-DS') que possa ser consumida independente de frameworks ou tecnologias utilizadas.
8
+
9
+ ## Demonstração
10
+
11
+ Acesse nossos sites e veja nossos componentes em ação:
12
+
13
+ - [Produção](https://gov.br/ds/webcomponents/)
14
+ - [Desenvolvimento](https://govbr-ds.gitlab.io/bibliotecas/wbc/govbr-ds-wbc/)
4
15
 
5
16
  ## Tecnologias
6
17
 
7
18
  Esse projeto é desenvolvido usando:
8
19
 
9
20
  1. [GovBR-DS](https://gov.br/ds/ 'GovBR-DS')
10
- 2. [Font Awesome](https://fontawesome.com/ 'Font Awesome')
11
- 3. [Fonte Rawline](https://www.cdnfonts.com/rawline.font/ 'Fonte Rawline')
12
- 4. [VueJS 3](https://v3.vuejs.org/ 'VueJS 3')
13
- 5. [Storybook](https://storybook.js.org/ 'Storybook')
14
- 6. [Jest](https://jestjs.io/ 'Jest')
21
+ 1. [Stencil](https://stenciljs.com/ 'Stencil')
22
+ 1. [Font Awesome](https://fontawesome.com/ 'Font Awesome')
23
+ 1. [Fonte Rawline](https://www.cdnfonts.com/rawline.font/ 'Fonte Rawline')
24
+ 1. [NX Monorepo](https://nx.dev/ 'NX Monorepo')
15
25
 
16
- > Para saber mais detalhes sobre Web Components sugerimos que consulte o [MDN](https://developer.mozilla.org/pt-BR/docs/Web/Web_Components 'Web Components | MDN').
26
+ ## O que são Web Components?
17
27
 
18
- ## Documentações Complementares
28
+ São um conjunto de tecnologias que permitem aos desenvolvedores criar novos elementos HTML personalizados, reutilizáveis ​​e encapsulados para uso em páginas e aplicativos da web. Eles se baseiam em padrões da web existentes e são suportados por todos os navegadores modernos.
29
+
30
+ O diagrama mostra os três componentes principais dos Web Components:
31
+
32
+ - Elementos HTML personalizados: tags HTML definidas usando JavaScript e podem ser usados ​​como qualquer outro elemento HTML.
33
+ - Shadow DOM: é um espaço de nome encapsulado para cada elemento HTML personalizado. Isso significa que os estilos e o JavaScript do elemento não interferem no resto da página.
34
+ - Templates: são fragmentos de HTML que podem ser reutilizados em vários elementos.
35
+ - Slots: são áreas em um elemento HTML personalizado onde templates podem ser inseridos.
36
+
37
+ ### Benefícios dos Web Components
38
+
39
+ 1. Reusabilidade
40
+ 1. Modularidade
41
+ 1. Encapsulamento
42
+ 1. Compatibilidade
43
+ 1. Manutenibilidade
44
+
45
+ ### Ciclo de Vida
46
+
47
+ Para entender melhor o ciclo de vida dos componentes, acesse a página [https://stenciljs.com/docs/component-lifecycle](https://stenciljs.com/docs/component-lifecycle).
48
+
49
+ ## Integração com frameworks
50
+
51
+ A integração entre Web Components e frameworks pode não ser fácil em determinadas situações. Por isso nós criamos as bibliotecas de integração (wrappers). Basicamente eles encapsulam os Web Components em uma biblioteca de componentes na tecnologia nativa de algum framework. Isso facilita a integração com funcionalidades nativas dos frameworks, como por exemplo o binding.
52
+
53
+ Para mais detalhes sobre como o Stencil faz a integração consulte [a documentação do Stencil sobre integrações](https://stenciljs.com/docs/overview).
19
54
 
20
- Consulte nossa a seção sobre Web Componente na nossa [Wiki](https://govbr-ds.gitlab.io/tools/wiki/hugo-cms/desenvolvimento/web-components) para obter mais informações.
55
+ Note que determinadas situações pode não ser possível fazer essa integração. Isso depende muito da evolução da especificação de Web Components e do suporte dos frameworks.
21
56
 
22
- ## Uso
57
+ ## Font Awesome e Fonte Rawline
23
58
 
24
- Existem 2 maneiras de usar nossos Web Components:
59
+ Nossos componentes usam a [Fonte Rawline](https://www.cdnfonts.com/rawline.font/ 'Fonte Rawline') juntamente com a [Font Awesome](https://fontawesome.com/ 'Font Awesome') padrão do DS.
60
+
61
+ Consulte a documentação no site do [GovBR-DS](https://www.gov.br/ds/como-comecar/instalacao 'GovBR-DS') para mais detalhes sobre como importá-los de seus respectivos CDNs.
62
+
63
+ ## Instalação e Uso
25
64
 
26
65
  - Pacote NPM
27
66
 
@@ -32,154 +71,211 @@ npm install --save @govbr-ds/webcomponents
32
71
  Depois de instalada, importe a biblioteca de dentro da pasta *node_modules*:
33
72
 
34
73
  ```javascript
35
- @import "node_modules/@govbr-ds/webcomponents/dist/webcomponents.umd.min.js"
74
+ @import "node_modules/@govbr-ds/webcomponents/loader"
36
75
  ```
37
76
 
38
- - CDN
77
+ - CDN (não mantidos por nossa equipe)
39
78
 
40
79
  ```html
41
- <script src="https://unpkg.com/@govbr-ds/webcomponents@VERSÃO/dist/webcomponents.umd.min.js"></script>
80
+ <script src="https://unpkg.com/@govbr-ds/webcomponents@<VERSÃO>/loader/index.js"></script>
81
+
82
+ ou
83
+
84
+ <script src="https://cdn.jsdelivr.net/npm/@govbr-ds/webcomponents@<VERSÃO>/loader/index.js"></script>
42
85
  ```
43
86
 
44
- > Troque **versão** pela versão do pacote que deseja
87
+ **Importante**: Dependendo do seu projeto pode ser necessário importar diretamente o arquivo `/dist/webcomponents/webcomponents.esm.js`. Observe as necessidades do seu projeto e importe os arquivos de acordo.
45
88
 
46
- **Importante**: O CDN <https://unpkg.com/> não é mantido por nossa equipe e portanto não podemos garantir um SLO. Considere importar os arquivos necessários para uma infraestrutura interna caso isso seja um impedimento para seu projeto.
89
+ E por último, importe o CSS com os tokens do `@govbr-ds/core`:
47
90
 
48
- ### Font Awesome e Fonte Rawline
91
+ ```html
92
+ <link rel="stylesheet" href="/assets/styles/core-tokens.min.css" />
93
+ ```
49
94
 
50
- Nossos componentes usam a [Fonte Rawline](https://www.cdnfonts.com/rawline.font/ 'Fonte Rawline') juntamente com a [Font Awesome](https://fontawesome.com/ 'Font Awesome') padrão do DS.
95
+ ## VSCODE
51
96
 
52
- Consulte a documentação no site do [GovBR-DS](https://www.gov.br/ds/como-comecar/instalacao 'GovBR-DS') para mais detalhes sobre como importá-los de seus respectivos CDNs.
97
+ Ao criar nossos Web Components fazemos uso de custom elements. O VSCODE não conhece os componentes e por isso não consegue fazer sugestões inteligentes para usar no autocomplete. Para auxiliar com isso nós geramos um arquivo `vscode-data.json` com as definições dos componentes e disponibilizamos junto com o nosso pacote npm.
98
+
99
+ Para importar no seu VSCODE, adicione o campo abaixo alterando o local onde o seu projeto armazena o `node_modules`.
100
+
101
+ ```json
102
+ {
103
+ "html.customData": ["./node_modules/@govbr-ds/webcomponents/vscode-data.json"]
104
+ }
105
+ ```
106
+
107
+ ### Build
108
+
109
+ Nesse projeto stencil ao gerar um `build` do projeto também são gerados automaticamente:
110
+
111
+ - Arquivo `readme.md` dentro da pasta de cada componente.
112
+ - Documentações dos componentes na pasta `apps/site/docs/stencil-generated-docs` para serem usadas e versionadas pelo site.
53
113
 
54
114
  ### Exemplos de uso
55
115
 
56
- Disponibilizamos alguns exemplos de como usar esse projeto com algumas tecnologias. Consulte o [nosso grupo aqui no gitlab](https://gitlab.com/govbr-ds/dev/wbc 'GovBR-DS/DEV/WBC') e procure pelos projetos de 'Quickstart' para mais detalhes.
116
+ Disponibilizamos alguns exemplos de como usar esse projeto com algumas tecnologias. Consulte o [nosso grupo aqui no gitlab](https://gitlab.com/govbr-ds/bibliotecas/wc 'GovBR-DS/WC') e procure pelos projetos de 'Quickstart' para mais detalhes.
57
117
 
58
- ## Estrutura de pastas
118
+ ## Arquitetura do Projeto Stencil
59
119
 
60
- > Vamos explicar apenas as pastas/arquivos que são importantes para o entendimento do projeto e contribuição.
120
+ ### Estrutura do Projeto
61
121
 
62
122
  ```markdown
63
- /raiz
64
- └───public
65
- │ └───index.html
66
- └───src
67
- │ │───App.vue
68
- │ │───main.js
69
- │ │
70
- │ │───library
71
- │ │ │───lib.js
72
- │ │ │───components
73
- │ │ │───mixins
74
- │ │ └───util
75
- │ │───pages
76
- │ │───router
77
- │ └───stories
123
+ webcomponents/
124
+ ├── src/
125
+ │ ├── components/
126
+ │ │ └── br-component/
127
+ │ │ ├── sections/
128
+ │ │ │ └── migrate.md
129
+ │ │ ├── tests/
130
+ │ │ │ ├── br-component.e2e.ts
131
+ │ │ │ └── br-component.spec.tsx
132
+ │ │ ├── br-component.scss
133
+ │ │ ├── br-component.tsx
134
+ │ │ └── readme.md
135
+ │ ├── pages/
136
+ │ │ └── components/
137
+ │ │ └── br-component/
138
+ │ │ └── index.js
139
+ │ │ └── exemplo.html
140
+ │ │ └── scripts/
141
+ │ └── utils/
142
+ │ └── index.html
143
+ ├── stencil.config.ts
144
+ ├── package.json
145
+ └── tsconfig.json
78
146
  ```
79
147
 
80
- - **public/index.html**: página inicial da aplicação Vue que faz uso dos componentes da biblioteca.
81
- - **src**
82
- - **App.vue** e **main.js**: arquivos da aplicação Vue.
83
- - **library**
84
- - **lib.js**: inicializa todos os custom elements e define o que faz parte da biblioteca. É usado para fazer o build final.
85
- - **components**: pasta com os componentes da biblioteca, seus testes e stories do storybook.
86
- - **mixins**: mixins que são usados em vários componentes.
87
- - **util**: funções criadas para facilitar ações dentro dos componentes
88
- - **pages**: páginas da aplicação Vue. São os exemplos que usamos para testar
89
- - **router**: arquivo com as rotas apontando para as páginas (pages) da aplicação Vue
90
- - **stories**: Arquivos com as stories gerais do storybook
148
+ #### Descrição dos Diretórios
91
149
 
92
- > Aplicação Vue é uma aplicação criada para testar rapidamente nossos componentes. Ela não é disponibilizada no build e nem disponibilizamos um site com ela.
150
+ - **src/**: Contém o código-fonte do projeto.
93
151
 
94
- ## Rodar o projeto na máquina local
152
+ - **components/**: Contém os componentes Web que serão criados com Stencil. Cada componente tem sua própria pasta.
95
153
 
96
- Clone o projeto:
154
+ - **br-component/**: Uma pasta específica para o componente `br-component`.
97
155
 
98
- ```bash
99
- git clone git@gitlab.com:govbr-ds/dev/wbc/govbr-ds-wbc.git
100
- ```
156
+ - **sections/**: Pasta com arquivos markdown para serem incluídos no site.
101
157
 
102
- Entre no diretório do projeto:
158
+ - **migrate.md**: Arquivo explicando 'como migrar' o componente da versão anterior para a nova.
103
159
 
104
- ```bash
105
- cd govbr-ds-wbc
106
- ```
160
+ - **test/**: Pasta com os arquivos de teste.
107
161
 
108
- Instale as dependências:
162
+ - **br-component.e2e.ts**: Arquivo para testes end-to-end (E2E) do componente.
109
163
 
110
- ```bash
111
- npm install
112
- ```
164
+ - **br-component.spec.tsx**: Arquivo para testes unitários (Unit) do componente.
113
165
 
114
- Para executar a nossa biblioteca a partir do código-fonte você tem 2 opções:
166
+ - **br-component.tsx**: O arquivo principal do componente, que contém a lógica e a estrutura do componente.
115
167
 
116
- ###  Executar como VueJS Components
168
+ - **br-component.scss**: O arquivo de estilo do componente.
117
169
 
118
- Nessa visualização você executa o projeto em uma página auxiliar (fora do storybook) e sem compilar o resultado para Web Components.
170
+ - **readme.md**: Documentação gerada automaticamente do componente durante `build`.
119
171
 
120
- ```node
121
- npm run serve
122
- ```
172
+ - **pages/**: Contém os exemplos dos componentes Web que serão criados com Stencil. Cada componente tem sua própria pasta.
123
173
 
124
- ###  Executar como Web Components
174
+ - **components/**: Pasta com os exemplos dos componentes.
125
175
 
126
- Nessa visualização o projeto é executado a partir do storybook e convertido para Web Components.
176
+ - **scripts/**: Pasta com os scripts usados no ambiente de desenvolvimento.
127
177
 
128
- Aqui você consegue testar as configurações, obter snippets de código e visualizar os componentes rodando como nos ambientes de produção.
178
+ - **br-component/**: Uma pasta específica para o componente `br-component`.
129
179
 
130
- ```node
131
- npm run storybook
132
- ```
180
+ - **index.js**: Arquivo com paga executar ações nos exemplos, como escutar por eventos.
133
181
 
134
- Essa compilação pode demorar para refletir as alterações na página. Assim, recomendamos que utilizem primeiro a execução como VueJS durante o desenvolvimento e quando considerarem as alterações maduras o suficiente façam os testes como Web Components.
182
+ - **exemplo.html**: Arquivos com o código de cada exemplo.
135
183
 
136
- ## Documentação
184
+ - **utils/**: Pasta para utilitários ou funções auxiliares que podem ser usadas em todo o projeto.
185
+ -
186
+ - **index.html**: Página inicial do servidor de desenvolvimento.
137
187
 
138
- Nossa documentação está disponível em <https://gov.br/ds/webcomponents/>.
188
+ #### Arquivos de Configuração
139
189
 
140
- ## Contribuindo
190
+ - **stencil.config.ts**: O principal arquivo de configuração para um projeto Stencil. Nele, você define opções de configuração como saída do build, plugins, global scripts, e outras opções.
141
191
 
142
- Antes de abrir um Merge Request tenha em mente algumas informações:
192
+ - **package.json**: Contém as dependências do projeto e scripts úteis para construir e desenvolver os componentes.
143
193
 
144
- - Esse é um projeto opensource e contribuições são bem-vindas.
145
- - Para facilitar a aprovação da sua contribuição, escolha um título curto, simples e explicativo para o MR, e siga os padrões da nossa [wiki](https://gov.br/ds/wiki/ 'Wiki').
146
- - Quer contribuir com o projeto? Confira o nosso guia [como contribuir](./CONTRIBUTING.md 'Como contribuir?').
194
+ - **tsconfig.json**: Arquivo de configuração do TypeScript que especifica as opções do compilador TypeScript para o projeto.
147
195
 
148
- ### Reportar bugs/necessidades
196
+ #### Scripts Úteis
149
197
 
150
- Você pode usar as [issues](https://gitlab.com/govbr-ds/dev/wbc/govbr-ds-wbc/-/issues/new) para nos informar os problemas que tem enfrentado ao usar nossa biblioteca ou mesmo o que gostaria que fizesse parte do projeto. Por favor use o modelo que mais se encaixa na sua necessidade e preencha com o máximo de detalhes possível.
198
+ - `build`: Gera um build do projeto e gera as documentações atualizadas.
199
+ - `dev`: Executa o projeto em um servidor de desenvolvimento.
151
200
 
152
- Nos comprometemos a responder a todas as issues.
201
+ ### Fluxo de Trabalho
153
202
 
154
- ## Precisa de ajuda?
203
+ 1. **Criar Componente**: Adicione um novo componente no diretório `src/components/` e crie os arquivos necessários.
204
+ 1. **Escrever Lógica**: Crie a lógica do componente.
205
+ 1. Implemente a lógica do componente no arquivo `.tsx`.
206
+ 1. Importe e sobrescreva o CSS necessário no arquivo `scss`.
207
+ 1. Adicione informações relevantes no arquivo `readme.md`.
208
+ 1. Coloque os exemplos de uso do componente dos arquivos da pasta `pages`.
209
+ 1. Inclua o componente e seus exemplos no array de componentes e exemplos dentro do arquivo `src/index.html`.
210
+ 1. **Pré-visualizar**: Use o script `dev` para visualizar suas alterações localmente.
211
+ 1. **Testar Componentes**: Escreva e execute testes unitários e E2E para garantir a qualidade do componente.
212
+ 1. **Construir**: Use o script `build` para testar se o processo de compilação está funcionando corretamente.
155
213
 
156
- > Por favor **não** crie issues para fazer perguntas...
214
+ É possível usar o `plop`para criar vários arquivos automaticamente para poupar tempo. Consulte a documentação do monorepo para mais detalhes.
157
215
 
158
- Use nossos canais abaixo para obter tirar suas dúvidas:
216
+ #### Componentes
217
+
218
+ Observe que os componentes **devem** seguir um padrão de escrita. Além das nomenclaturas (descritas na Wiki), devemos seguir os padrões de comentários/descrições, de validações e escrita geral dos componentes.
219
+
220
+ Por exemplo, sempre use os mesmos comentários para os métodos do ciclo de vida dos componentes uma vez que eles são os mesmos para todos os componentes.
221
+
222
+ #### Exemplos
223
+
224
+ Os exemplos também tem modelos de escrita para ficarem iguais. Observe como os exemplos anteriores foram escritos e usem como base para os novos.
159
225
 
160
- - Site do GovBR-DS <http://gov.br/ds>
226
+ ## Regras de Versionamento e Releases
161
227
 
162
- - Web Components <https://gov.br/ds/webcomponents/>
228
+ Utilizamos o **Semantic Release** para gerar versões automaticamente, baseando-nos nos tipos, escopos e mensagens dos commits para determinar o tipo de versão que será publicada (major, minor, ou patch). No entanto, em alguns casos, é necessário que certos commits sejam ignorados na avaliação para o lançamento de uma nova versão. Para esses casos, utilize os tipos e/ou escopos listados abaixo.
163
229
 
164
- - Pelo nosso email <govbr-ds@serpro.gov.br>
230
+ ### Tipos de Commits que Não Geram Releases
165
231
 
166
- - Usando nosso canal no discord <https://discord.gg/U5GwPfqhUP>
232
+ Os seguintes tipos de commit são ignorados na criação de novas versões, pois representam alterações internas ou trabalhos em progresso que não afetam diretamente o comportamento externo do projeto:
167
233
 
168
- ## Commits
234
+ - **`build`**: Atualizações no sistema de build ou nas dependências, sem impacto no código final.
235
+ - **`chore`**: Tarefas gerais de manutenção que não impactam o produto final ou sua funcionalidade.
236
+ - **`ci`**: Ajustes no pipeline de integração contínua (CI), sem alteração direta no comportamento do produto.
237
+ - **`test`**: Criação ou modificação de testes, sem alterações nas funcionalidades existentes.
238
+ - **`wip`**: Trabalhos em progresso, indicados como incompletos ou ainda não prontos para produção.
169
239
 
170
- Nesse projeto usamos um padrão para branches e commits. Por favor observe a documentação na nossa [wiki](https://gov.br/ds/wiki/ 'Wiki') para aprender sobre os nossos padrões.
240
+ ### Escopos de Commits que Não Geram Releases
171
241
 
172
- ## Apêndice
242
+ Em alguns casos, o escopo das alterações deixa claro que o commit não deve gerar uma nova versão, mesmo que o tipo de commit seja relevante. Para isso, os escopos abaixo são configurados para ignorar essas alterações no processo de versionamento:
243
+
244
+ - **`site`**: Modificações no site de documentação, que não alteram o código do produto.
245
+ - **`monorepo`**: Alterações feitas especificamente no repositório monorepo, sem impacto direto no projeto ou na biblioteca de componentes.
246
+ - **`no-release`**: Qualquer commit marcado explicitamente para não gerar uma nova versão.
247
+
248
+ ## Documentações Complementares
249
+
250
+ Consulte a seção sobre Web Componente na nossa [Wiki](https://gov.br/ds/wiki/desenvolvimento/web-components) para obter mais informações sobre esse projeto.
251
+
252
+ Para saber mais detalhes sobre a especificação Web Components sugerimos que consulte o [MDN](https://developer.mozilla.org/pt-BR/docs/Web/Web_Components 'Web Components | MDN').
173
253
 
174
254
  ### Polyfill
175
255
 
256
+ Acesse os seguintes links para entender mais sobre o suporte dos browsers a [Custom Elements](https://caniuse.com/custom-elementsv1) e a [Shadow Dom](https://caniuse.com/shadowdomv1).
257
+
176
258
  Caso os requisitos do seu projeto incluam navegadores que não suportam completamente os Web Components, adicione os [polyfills](https://www.webcomponents.org/polyfills) ao seu projeto.
177
259
 
178
- Para aprender com instalar, consulte a [documentação oficial](https://github.com/webcomponents/polyfills/tree/master/packages/webcomponentsjs 'Polyfills')
260
+ Para aprender com instalar, consulte a [documentação oficial](https://github.com/webcomponents/polyfills/tree/master/packages/webcomponentsjs 'Polyfills').
261
+
262
+ ## Precisa de ajuda?
263
+
264
+ Por favor **não** crie issues para fazer perguntas.
265
+
266
+ Use nossos canais abaixo para obter tirar suas dúvidas:
267
+
268
+ - Site do GovBR-DS [http://gov.br/ds](http://gov.br/ds)
269
+ - Web Components [https://gov.br/ds/webcomponents](https://gov.br/ds/webcomponents)
270
+ - Usando nosso canal no discord [https://discord.gg/U5GwPfqhUP](https://discord.gg/U5GwPfqhUP)
271
+
272
+ ### Recursos Adicionais
273
+
274
+ Para mais informações, consulte a [documentação oficial do Stencil](https://stenciljs.com/docs/introduction).
179
275
 
180
276
  ## Créditos
181
277
 
182
- Os Web Components do [GovBR-DS](https://gov.br/ds/ 'GovBR-DS') são criados pelo [SERPRO](https://www.serpro.gov.br/ 'SERPRO | Serviço Federal de Processamento de Dados') e [Dataprev](https://www.dataprev.gov.br/ 'Dataprev | Empresa de Tecnologia e Informações da Previdência') juntamente com a participação da comunidade.
278
+ Os Web Components do [GovBR-DS](https://gov.br/ds/ 'GovBR-DS') são criados pelo [SERPRO](https://www.serpro.gov.br/ 'SERPRO | Serviço Federal de Processamento de Dados') juntamente com a comunidade.
183
279
 
184
280
  ## Licença
185
281
 
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Construído com @govbr-ds/webcomponents
3
+ * Padrão Digital de Governo.
4
+ */
5
+ 'use strict';
6
+
7
+ const globalScripts = () => {};
8
+
9
+ exports.globalScripts = globalScripts;
10
+
11
+ //# sourceMappingURL=app-globals-77a217c6.js.map
@@ -0,0 +1 @@
1
+ {"file":"app-globals-77a217c6.js","mappings":";;;;;;AAAY,MAAC,aAAa,GAAG,MAAM;;;;","names":[],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["export const globalScripts = () => {};\n"],"version":3}
@@ -0,0 +1,77 @@
1
+ /*!
2
+ * Construído com @govbr-ds/webcomponents
3
+ * Padrão Digital de Governo.
4
+ */
5
+ 'use strict';
6
+
7
+ Object.defineProperty(exports, '__esModule', { value: true });
8
+
9
+ const index = require('./index-81c11ce2.js');
10
+ const inheritedAttributes = require('./inherited-attributes-16f7d388.js');
11
+
12
+ const avatarCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}html{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}a{background-color:transparent}strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-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}[hidden]{display:none}.d-flex{display:-ms-flexbox !important;display:flex !important}.align-items-center{-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter) * 0.5);padding-right:calc(var(--grid-gutter) * 0.5);width:100%}.col{-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.container{--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:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter) * -0.5);margin-right:calc(var(--grid-gutter) * -0.5)}@media (min-width: 576px){.container{--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{--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{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width: 1600px){.container{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right: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}.mb-3{margin-bottom:var(--spacing-scale-2x) !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}ul{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}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)}::-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}::-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}:-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}::-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,textarea,.input{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)}.text-pure-0{color:var(--pure-0) !important}.text-primary-default{color:var(--color-primary-default) !important}.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);background:var(--color-support-01) !important}.text-nowrap{white-space:nowrap !important}.text-base{font-size:var(--font-size-scale-base) !important}.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-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)}.br-avatar{--avatar-size:var(--avatar-small);--avatar-icon-size:var(--avatar-icon-small);--avatar-text-size:var(--avatar-text-small);--avatar-small:40px;--avatar-medium:100px;--avatar-large:160px;--avatar-icon-small:var(--icon-size-2x);--avatar-icon-medium:var(--icon-size-5x);--avatar-icon-large:var(--icon-size-8x);--avatar-text-small:var(--font-size-scale-up-03);--avatar-text-medium:var(--font-size-scale-up-07);--avatar-text-large:var(--font-size-scale-up-11);-ms-flex-align:center;align-items:center;background-color:transparent;border:0;display:-ms-inline-flexbox;display:inline-flex;font-size:var(--avatar-text-size);font-weight:var(--font-weight-bold);-ms-flex-pack:center;justify-content:center;line-height:var(--avatar-size);vertical-align:middle}.br-avatar .content{-ms-flex-align:center;align-items:center;background-color:var(--blue-10);border-radius:50%;color:var(--blue-warm-20);display:-ms-inline-flexbox;display:inline-flex;font-size:var(--avatar-text-size);height:var(--avatar-size);-ms-flex-pack:center;justify-content:center;overflow:hidden;text-align:center;text-transform:uppercase;vertical-align:inherit;width:var(--avatar-size)}.br-avatar .content img{height:var(--avatar-size);vertical-align:inherit;width:var(--avatar-size)}.br-avatar.small,.br-avatar[small]{--avatar-size:var(--avatar-small);--avatar-icon-size:var(--avatar-icon-small);--avatar-text-size:var(--avatar-text-small)}.br-avatar.is-medium,.br-avatar.medium,.br-avatar[medium]{--avatar-size:var(--avatar-medium);--avatar-icon-size:var(--avatar-icon-medium);--avatar-text-size:var(--avatar-text-medium)}.br-avatar.large,.br-avatar[large]{--avatar-size:var(--avatar-large);--avatar-icon-size:var(--avatar-icon-large);--avatar-text-size:var(--avatar-text-large)}.br-avatar[data-toggle=dropdown]:focus{outline:none}.br-avatar[data-toggle=dropdown]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-avatar .image{-ms-flex-align:center;align-items:center;background-color:var(--blue-10);border-radius:50%;color:var(--blue-warm-20);display:-ms-inline-flexbox;display:inline-flex;font-size:var(--avatar-text-size);height:var(--avatar-size);-ms-flex-pack:center;justify-content:center;overflow:hidden;text-align:center;text-transform:uppercase;vertical-align:inherit;width:var(--avatar-size)}.br-avatar .image img{height:var(--avatar-size);vertical-align:inherit;width:var(--avatar-size)}:host{display:block}";
13
+ const BrAvatarStyle0 = avatarCss;
14
+
15
+ const Avatar = class {
16
+ constructor(hostRef) {
17
+ index.registerInstance(this, hostRef);
18
+ this.iconSizes = {
19
+ small: { height: '32px', width: '40px' },
20
+ medium: { height: '80px', width: '88px' },
21
+ large: { height: '128px', width: '136px' },
22
+ };
23
+ this.iconMarginTops = {
24
+ small: '0.7em',
25
+ medium: '1em',
26
+ large: '0.62em',
27
+ };
28
+ this.inheritedAttributes = {};
29
+ this.density = 'medium';
30
+ this.image = undefined;
31
+ this.imageAlt = 'Imagem do avatar';
32
+ this.isIconic = false;
33
+ this.text = undefined;
34
+ this.iconWidth = undefined;
35
+ this.iconHeight = undefined;
36
+ this.marginTop = undefined;
37
+ }
38
+ componentWillLoad() {
39
+ this.inheritedAttributes = inheritedAttributes.inheritAriaAttributes(this.el);
40
+ }
41
+ /**
42
+ * Gera um mapa de classes CSS com base nas propriedades do componente.
43
+ * O mapa de classes determina quais classes CSS devem ser aplicadas
44
+ * ao elemento host do componente, ajustando sua aparência.
45
+ *
46
+ * @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.
47
+ */
48
+ getCssClassMap() {
49
+ return {
50
+ 'br-avatar': true,
51
+ small: this.density === 'small',
52
+ medium: this.density === 'medium',
53
+ large: this.density === 'large',
54
+ };
55
+ }
56
+ renderAvatar() {
57
+ var _a, _b, _c, _d, _e;
58
+ if (((_a = this.text) === null || _a === void 0 ? void 0 : _a.trim().length) > 0) {
59
+ return (index.h("span", { class: "content bg-support-01 text-pure-0", title: this.text }, this.text[0].toUpperCase()));
60
+ }
61
+ if (((_b = this.image) === null || _b === void 0 ? void 0 : _b.trim().length) > 0) {
62
+ return (index.h("span", { class: "content", title: this.imageAlt || this.text }, index.h("img", { src: this.image, alt: this.imageAlt, loading: "lazy" })));
63
+ }
64
+ if (this.isIconic) {
65
+ return (index.h("span", { class: "content", title: this.text }, index.h("br-icon", { "icon-name": "fa-solid:user", height: ((_c = this.iconHeight) === null || _c === void 0 ? void 0 : _c.length) > 0 ? this.iconHeight : this.iconSizes[this.density].height, width: ((_d = this.iconWidth) === null || _d === void 0 ? void 0 : _d.length) > 0 ? this.iconWidth : this.iconSizes[this.density].width, "aria-hidden": "true", style: { 'margin-top': ((_e = this.marginTop) === null || _e === void 0 ? void 0 : _e.length) > 0 ? this.marginTop : this.iconMarginTops[this.density] } })));
66
+ }
67
+ }
68
+ render() {
69
+ return (index.h(index.Host, { key: '8e7d5a109467811e371dcfa56214f079b82970bb' }, index.h("span", Object.assign({ key: '63036c324a6be24469e6453a40af31e684973c1a', class: this.getCssClassMap() }, this.inheritedAttributes), this.renderAvatar())));
70
+ }
71
+ get el() { return index.getElement(this); }
72
+ };
73
+ Avatar.style = BrAvatarStyle0;
74
+
75
+ exports.br_avatar = Avatar;
76
+
77
+ //# sourceMappingURL=br-avatar.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"br-avatar.entry.cjs.js","mappings":";;;;;;;;;;;AAAA,MAAM,SAAS,GAAG,szXAAszX,CAAC;AACz0X,uBAAe,SAAS;;MCWX,MAAM;;;QAuEA,cAAS,GAAG;YAC3B,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YACxC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YACzC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SAC3C,CAAA;QAEgB,mBAAc,GAAG;YAChC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,QAAQ;SAChB,CAAA;QAEO,wBAAmB,GAAe,EAAE,CAAA;uBAzEI,QAAQ;;wBAYrC,kBAAkB;wBAMT,KAAK;;;;;;IAQjC,iBAAiB;QACf,IAAI,CAAC,mBAAmB,GAAGA,yCAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAC1D;;;;;;;;IAwBO,cAAc;QACpB,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ;YACjC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;SAChC,CAAA;KACF;IAgBO,YAAY;;QAClB,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,GAAG,MAAM,IAAG,CAAC,EAAE;YAChC,QACEC,kBAAM,KAAK,EAAC,mCAAmC,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAC7D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACtB,EACR;SACF;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,GAAG,MAAM,IAAG,CAAC,EAAE;YACjC,QACEA,kBAAM,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IACrDA,iBAAK,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,GAAG,CACtD,EACR;SACF;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,QACEA,kBAAM,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IACpCA,kCACY,eAAe,EACzB,MAAM,EAAE,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAC3F,KAAK,EAAE,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,iBAC3E,MAAM,EAClB,KAAK,EAAE,EAAE,YAAY,EAAE,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAC/F,CACN,EACR;SACF;KACF;IAED,MAAM;QACJ,QACEA,QAACC,UAAI,uDACHD,iFAAM,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,IAAM,IAAI,CAAC,mBAAmB,GAC7D,IAAI,CAAC,YAAY,EAAE,CACf,CACF,EACR;KACF;;;;;;;","names":["inheritAriaAttributes","h","Host"],"sources":["src/components/avatar/avatar.scss?tag=br-avatar&encapsulation=shadow","src/components/avatar/avatar.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/avatar/avatar\";\n\n:host {\n display: block;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/avatar?tab=designer).\n */\n@Component({\n tag: 'br-avatar',\n styleUrl: 'avatar.scss',\n shadow: true,\n})\nexport class Avatar {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrAvatarElement\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop() density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * URL da imagem a ser exibida no avatar do tipo 'fotográfico'.\n * Deve ser uma URL válida que aponta para a imagem desejada.\n */\n @Prop() image: string\n\n /**\n * Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade e SEO.\n * Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: \"Foto de perfil de João Silva\".\n */\n @Prop() imageAlt = 'Imagem do avatar'\n\n /**\n * Indica se o avatar deve ser exibido como um ícone em vez de uma imagem fotográfica.\n * Se definido como verdadeiro, o avatar será exibido como um ícone.\n */\n @Prop() isIconic: boolean = false\n\n /**\n * Texto exibido no avatar do tipo 'letra'.\n * Esse texto será mostrado em vez de uma imagem e pode ser usado para representar iniciais ou outras informações textuais.\n */\n @Prop() text: string\n\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n /**\n * Largura do ícone no avatar do tipo icônico\n * */\n @Prop() iconWidth: string\n\n /**\n * Altura do ícone no avatar do tipo icônico\n */\n @Prop() iconHeight: string\n\n /**\n * Ajuste para a margem de cima do ícone no avatar do tipo icônico\n */\n @Prop() marginTop: string\n\n /**\n * Gera um mapa de classes CSS com base nas propriedades do componente.\n * O mapa de classes determina quais classes CSS devem ser aplicadas\n * ao elemento host do componente, ajustando sua aparência.\n *\n * @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-avatar': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n }\n }\n\n private readonly iconSizes = {\n small: { height: '32px', width: '40px' },\n medium: { height: '80px', width: '88px' },\n large: { height: '128px', width: '136px' },\n }\n\n private readonly iconMarginTops = {\n small: '0.7em',\n medium: '1em',\n large: '0.62em',\n }\n\n private inheritedAttributes: Attributes = {}\n\n private renderAvatar() {\n if (this.text?.trim().length > 0) {\n return (\n <span class=\"content bg-support-01 text-pure-0\" title={this.text}>\n {this.text[0].toUpperCase()}\n </span>\n )\n }\n\n if (this.image?.trim().length > 0) {\n return (\n <span class=\"content\" title={this.imageAlt || this.text}>\n <img src={this.image} alt={this.imageAlt} loading=\"lazy\" />\n </span>\n )\n }\n\n if (this.isIconic) {\n return (\n <span class=\"content\" title={this.text}>\n <br-icon\n icon-name=\"fa-solid:user\"\n height={this.iconHeight?.length > 0 ? this.iconHeight : this.iconSizes[this.density].height}\n width={this.iconWidth?.length > 0 ? this.iconWidth : this.iconSizes[this.density].width}\n aria-hidden=\"true\"\n style={{ 'margin-top': this.marginTop?.length > 0 ? this.marginTop : this.iconMarginTops[this.density] }}\n ></br-icon>\n </span>\n )\n }\n }\n\n render() {\n return (\n <Host>\n <span class={this.getCssClassMap()} {...this.inheritedAttributes}>\n {this.renderAvatar()}\n </span>\n </Host>\n )\n }\n}\n"],"version":3}