@govbr-ds/webcomponents 2.0.0-next.4 → 2.0.0-next.40

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 (708) hide show
  1. package/dist/README.md +378 -0
  2. package/dist/cjs/app-globals-DcqHuMBv.js +12 -0
  3. package/dist/cjs/app-globals-DcqHuMBv.js.map +1 -0
  4. package/dist/cjs/br-avatar.cjs.entry.js +130 -0
  5. package/dist/cjs/br-avatar.cjs.entry.js.map +1 -0
  6. package/dist/cjs/br-avatar.entry.cjs.js.map +1 -0
  7. package/dist/cjs/br-breadcrumb.cjs.entry.js +309 -0
  8. package/dist/cjs/br-breadcrumb.cjs.entry.js.map +1 -0
  9. package/dist/cjs/br-breadcrumb.entry.cjs.js.map +1 -0
  10. package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -0
  11. package/dist/cjs/br-button_2.cjs.entry.js +2513 -0
  12. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -0
  13. package/dist/cjs/br-checkbox.cjs.entry.js +156 -0
  14. package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -0
  15. package/dist/cjs/br-checkbox.entry.cjs.js.map +1 -0
  16. package/dist/cjs/br-checkgroup.cjs.entry.js +117 -0
  17. package/dist/cjs/br-checkgroup.cjs.entry.js.map +1 -0
  18. package/dist/cjs/br-checkgroup.entry.cjs.js.map +1 -0
  19. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -0
  20. package/dist/cjs/br-collapse_2.cjs.entry.js +286 -0
  21. package/dist/cjs/br-collapse_2.cjs.entry.js.map +1 -0
  22. package/dist/cjs/br-divider.cjs.entry.js +86 -0
  23. package/dist/cjs/br-divider.cjs.entry.js.map +1 -0
  24. package/dist/cjs/br-divider.entry.cjs.js.map +1 -0
  25. package/dist/cjs/br-dropdown.cjs.entry.js +109 -0
  26. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -0
  27. package/dist/cjs/br-dropdown.entry.cjs.js.map +1 -0
  28. package/dist/cjs/br-footer-category.cjs.entry.js +110 -0
  29. package/dist/cjs/br-footer-category.cjs.entry.js.map +1 -0
  30. package/dist/cjs/br-footer-category.entry.cjs.js.map +1 -0
  31. package/dist/cjs/br-footer-item.cjs.entry.js +52 -0
  32. package/dist/cjs/br-footer-item.cjs.entry.js.map +1 -0
  33. package/dist/cjs/br-footer-item.entry.cjs.js.map +1 -0
  34. package/dist/cjs/br-footer-legal.cjs.entry.js +43 -0
  35. package/dist/cjs/br-footer-legal.cjs.entry.js.map +1 -0
  36. package/dist/cjs/br-footer-legal.entry.cjs.js.map +1 -0
  37. package/dist/cjs/br-footer-logo.cjs.entry.js +74 -0
  38. package/dist/cjs/br-footer-logo.cjs.entry.js.map +1 -0
  39. package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -0
  40. package/dist/cjs/br-footer-social.cjs.entry.js +57 -0
  41. package/dist/cjs/br-footer-social.cjs.entry.js.map +1 -0
  42. package/dist/cjs/br-footer-social.entry.cjs.js.map +1 -0
  43. package/dist/cjs/br-footer.cjs.entry.js +49 -0
  44. package/dist/cjs/br-footer.cjs.entry.js.map +1 -0
  45. package/dist/cjs/br-footer.entry.cjs.js.map +1 -0
  46. package/dist/cjs/br-input.br-radio.entry.cjs.js.map +1 -0
  47. package/dist/cjs/br-input_2.cjs.entry.js +416 -0
  48. package/dist/cjs/br-input_2.cjs.entry.js.map +1 -0
  49. package/dist/cjs/br-item.cjs.entry.js +309 -0
  50. package/dist/cjs/br-item.cjs.entry.js.map +1 -0
  51. package/dist/cjs/br-item.entry.cjs.js.map +1 -0
  52. package/dist/cjs/br-loading.cjs.entry.js +58 -0
  53. package/dist/cjs/br-loading.cjs.entry.js.map +1 -0
  54. package/dist/cjs/br-loading.entry.cjs.js.map +1 -0
  55. package/dist/cjs/br-message.cjs.entry.js +114 -0
  56. package/dist/cjs/br-message.cjs.entry.js.map +1 -0
  57. package/dist/cjs/br-message.entry.cjs.js.map +1 -0
  58. package/dist/cjs/br-scrim.cjs.entry.js +456 -0
  59. package/dist/cjs/br-scrim.cjs.entry.js.map +1 -0
  60. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -0
  61. package/dist/cjs/br-select.cjs.entry.js +332 -0
  62. package/dist/cjs/br-select.cjs.entry.js.map +1 -0
  63. package/dist/cjs/br-select.entry.cjs.js.map +1 -0
  64. package/dist/cjs/br-step-item.cjs.entry.js +245 -0
  65. package/dist/cjs/br-step-item.cjs.entry.js.map +1 -0
  66. package/dist/cjs/br-step-item.entry.cjs.js.map +1 -0
  67. package/dist/cjs/br-step.cjs.entry.js +283 -0
  68. package/dist/cjs/br-step.cjs.entry.js.map +1 -0
  69. package/dist/cjs/br-step.entry.cjs.js.map +1 -0
  70. package/dist/cjs/br-switch.cjs.entry.js +123 -0
  71. package/dist/cjs/br-switch.cjs.entry.js.map +1 -0
  72. package/dist/cjs/br-switch.entry.cjs.js.map +1 -0
  73. package/dist/cjs/br-tab-item.cjs.entry.js +76 -0
  74. package/dist/cjs/br-tab-item.cjs.entry.js.map +1 -0
  75. package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -0
  76. package/dist/cjs/br-tab.cjs.entry.js +294 -0
  77. package/dist/cjs/br-tab.cjs.entry.js.map +1 -0
  78. package/dist/cjs/br-tab.entry.cjs.js.map +1 -0
  79. package/dist/cjs/br-table-cell.cjs.entry.js +81 -0
  80. package/dist/cjs/br-table-cell.cjs.entry.js.map +1 -0
  81. package/dist/cjs/br-table-cell.entry.cjs.js.map +1 -0
  82. package/dist/cjs/br-table-header-cell.cjs.entry.js +70 -0
  83. package/dist/cjs/br-table-header-cell.cjs.entry.js.map +1 -0
  84. package/dist/cjs/br-table-header-cell.entry.cjs.js.map +1 -0
  85. package/dist/cjs/br-table-header-row.cjs.entry.js +44 -0
  86. package/dist/cjs/br-table-header-row.cjs.entry.js.map +1 -0
  87. package/dist/cjs/br-table-header-row.entry.cjs.js.map +1 -0
  88. package/dist/cjs/br-table-row.cjs.entry.js +36 -0
  89. package/dist/cjs/br-table-row.cjs.entry.js.map +1 -0
  90. package/dist/cjs/br-table-row.entry.cjs.js.map +1 -0
  91. package/dist/cjs/br-table.cjs.entry.js +44 -0
  92. package/dist/cjs/br-table.cjs.entry.js.map +1 -0
  93. package/dist/cjs/br-table.entry.cjs.js.map +1 -0
  94. package/dist/cjs/br-tag.cjs.entry.js +198 -0
  95. package/dist/cjs/br-tag.cjs.entry.js.map +1 -0
  96. package/dist/cjs/br-tag.entry.cjs.js.map +1 -0
  97. package/dist/cjs/br-textarea.cjs.entry.js +122 -0
  98. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -0
  99. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -0
  100. package/dist/cjs/br-upload.cjs.entry.js +151 -0
  101. package/dist/cjs/br-upload.cjs.entry.js.map +1 -0
  102. package/dist/cjs/br-upload.entry.cjs.js.map +1 -0
  103. package/dist/cjs/helpers-BOXIHVCc.js +23 -0
  104. package/dist/cjs/helpers-BOXIHVCc.js.map +1 -0
  105. package/dist/cjs/index-DAOr34NM.js +2410 -0
  106. package/dist/cjs/index-DAOr34NM.js.map +1 -0
  107. package/dist/cjs/index.cjs.js +9 -0
  108. package/dist/cjs/index.cjs.js.map +1 -0
  109. package/dist/cjs/loader.cjs.js +20 -0
  110. package/dist/cjs/loader.cjs.js.map +1 -0
  111. package/dist/cjs/webcomponents.cjs.js +53 -0
  112. package/dist/cjs/webcomponents.cjs.js.map +1 -0
  113. package/dist/collection/assets/wc.svg +1 -0
  114. package/dist/collection/collection-manifest.json +47 -0
  115. package/dist/collection/components/avatar/avatar.css +1 -0
  116. package/dist/collection/components/avatar/avatar.js +344 -0
  117. package/dist/collection/components/avatar/avatar.js.map +1 -0
  118. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -0
  119. package/dist/collection/components/breadcrumb/breadcrumb.js +391 -0
  120. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -0
  121. package/dist/collection/components/button/button.css +1 -0
  122. package/dist/collection/components/button/button.js +322 -0
  123. package/dist/collection/components/button/button.js.map +1 -0
  124. package/dist/collection/components/checkbox/checkbox.css +1 -0
  125. package/dist/collection/components/checkbox/checkbox.js +423 -0
  126. package/dist/collection/components/checkbox/checkbox.js.map +1 -0
  127. package/dist/collection/components/checkgroup/checkgroup.css +1 -0
  128. package/dist/collection/components/checkgroup/checkgroup.js +238 -0
  129. package/dist/collection/components/checkgroup/checkgroup.js.map +1 -0
  130. package/dist/collection/components/collapse/collapse.css +1 -0
  131. package/dist/collection/components/collapse/collapse.js +389 -0
  132. package/dist/collection/components/collapse/collapse.js.map +1 -0
  133. package/dist/collection/components/divider/divider.css +1 -0
  134. package/dist/collection/components/divider/divider.js +262 -0
  135. package/dist/collection/components/divider/divider.js.map +1 -0
  136. package/dist/collection/components/dropdown/dropdown.css +1 -0
  137. package/dist/collection/components/dropdown/dropdown.js +221 -0
  138. package/dist/collection/components/dropdown/dropdown.js.map +1 -0
  139. package/dist/collection/components/footer/footer.css +1 -0
  140. package/dist/collection/components/footer/footer.js +128 -0
  141. package/dist/collection/components/footer/footer.js.map +1 -0
  142. package/dist/collection/components/footer-category/footer-category.css +1 -0
  143. package/dist/collection/components/footer-category/footer-category.js +178 -0
  144. package/dist/collection/components/footer-category/footer-category.js.map +1 -0
  145. package/dist/collection/components/footer-item/footer-item.css +1 -0
  146. package/dist/collection/components/footer-item/footer-item.js +117 -0
  147. package/dist/collection/components/footer-item/footer-item.js.map +1 -0
  148. package/dist/collection/components/footer-legal/footer-legal.css +1 -0
  149. package/dist/collection/components/footer-legal/footer-legal.js +77 -0
  150. package/dist/collection/components/footer-legal/footer-legal.js.map +1 -0
  151. package/dist/collection/components/footer-logo/footer-logo.css +1 -0
  152. package/dist/collection/components/footer-logo/footer-logo.js +188 -0
  153. package/dist/collection/components/footer-logo/footer-logo.js.map +1 -0
  154. package/dist/collection/components/footer-social/footer-social.css +1 -0
  155. package/dist/collection/components/footer-social/footer-social.js +147 -0
  156. package/dist/collection/components/footer-social/footer-social.js.map +1 -0
  157. package/dist/collection/components/icon/icon.css +1 -0
  158. package/dist/collection/components/icon/icon.js +243 -0
  159. package/dist/collection/components/icon/icon.js.map +1 -0
  160. package/dist/collection/components/input/input.css +1 -0
  161. package/dist/collection/components/input/input.js +763 -0
  162. package/dist/collection/components/input/input.js.map +1 -0
  163. package/dist/collection/components/item/item.css +1 -0
  164. package/dist/collection/components/item/item.js +613 -0
  165. package/dist/collection/components/item/item.js.map +1 -0
  166. package/dist/collection/components/list/list.css +1 -0
  167. package/dist/collection/components/list/list.js +260 -0
  168. package/dist/collection/components/list/list.js.map +1 -0
  169. package/dist/collection/components/loading/loading.css +1 -0
  170. package/dist/collection/components/loading/loading.js +167 -0
  171. package/dist/collection/components/loading/loading.js.map +1 -0
  172. package/dist/collection/components/message/message.css +1 -0
  173. package/dist/collection/components/message/message.js +316 -0
  174. package/dist/collection/components/message/message.js.map +1 -0
  175. package/dist/collection/components/radio/radio.css +1 -0
  176. package/dist/collection/components/radio/radio.js +364 -0
  177. package/dist/collection/components/radio/radio.js.map +1 -0
  178. package/dist/collection/components/scrim/scrim.css +1 -0
  179. package/dist/collection/components/scrim/scrim.js +806 -0
  180. package/dist/collection/components/scrim/scrim.js.map +1 -0
  181. package/dist/collection/components/select/select.css +1 -0
  182. package/dist/collection/components/select/select.js +566 -0
  183. package/dist/collection/components/select/select.js.map +1 -0
  184. package/dist/collection/components/step/step.css +1 -0
  185. package/dist/collection/components/step/step.js +546 -0
  186. package/dist/collection/components/step/step.js.map +1 -0
  187. package/dist/collection/components/step-item/step-item.css +1 -0
  188. package/dist/collection/components/step-item/step-item.js +551 -0
  189. package/dist/collection/components/step-item/step-item.js.map +1 -0
  190. package/dist/collection/components/switch/switch.css +1 -0
  191. package/dist/collection/components/switch/switch.js +388 -0
  192. package/dist/collection/components/switch/switch.js.map +1 -0
  193. package/dist/collection/components/tab/tab.css +1 -0
  194. package/dist/collection/components/tab/tab.js +372 -0
  195. package/dist/collection/components/tab/tab.js.map +1 -0
  196. package/dist/collection/components/tab-item/tab-item.css +1 -0
  197. package/dist/collection/components/tab-item/tab-item.js +256 -0
  198. package/dist/collection/components/tab-item/tab-item.js.map +1 -0
  199. package/dist/collection/components/table/table.css +1 -0
  200. package/dist/collection/components/table/table.js +77 -0
  201. package/dist/collection/components/table/table.js.map +1 -0
  202. package/dist/collection/components/table-cell/table-cell.css +1 -0
  203. package/dist/collection/components/table-cell/table-cell.js +171 -0
  204. package/dist/collection/components/table-cell/table-cell.js.map +1 -0
  205. package/dist/collection/components/table-header-cell/table-header-cell.css +1 -0
  206. package/dist/collection/components/table-header-cell/table-header-cell.js +164 -0
  207. package/dist/collection/components/table-header-cell/table-header-cell.js.map +1 -0
  208. package/dist/collection/components/table-header-row/table-header-row.css +1 -0
  209. package/dist/collection/components/table-header-row/table-header-row.js +77 -0
  210. package/dist/collection/components/table-header-row/table-header-row.js.map +1 -0
  211. package/dist/collection/components/table-row/table-row.css +1 -0
  212. package/dist/collection/components/table-row/table-row.js +69 -0
  213. package/dist/collection/components/table-row/table-row.js.map +1 -0
  214. package/dist/collection/components/tag/tag.css +1 -0
  215. package/dist/collection/components/tag/tag.js +498 -0
  216. package/dist/collection/components/tag/tag.js.map +1 -0
  217. package/dist/collection/components/textarea/textarea.css +1 -0
  218. package/dist/collection/components/textarea/textarea.js +374 -0
  219. package/dist/collection/components/textarea/textarea.js.map +1 -0
  220. package/dist/collection/components/upload/upload.css +1 -0
  221. package/dist/collection/components/upload/upload.js +264 -0
  222. package/dist/collection/components/upload/upload.js.map +1 -0
  223. package/dist/collection/index.js +2 -0
  224. package/dist/collection/index.js.map +1 -0
  225. package/dist/collection/pages/components/breadcrumb/index.js +18 -0
  226. package/dist/collection/pages/components/button/index.js +18 -0
  227. package/dist/collection/pages/components/checkbox/index.js +18 -0
  228. package/dist/collection/pages/components/checkgroup/index.js +20 -0
  229. package/dist/collection/pages/components/collapse/index.js +18 -0
  230. package/dist/collection/pages/components/divider/index.js +18 -0
  231. package/dist/collection/pages/components/dropdown/index.js +18 -0
  232. package/dist/collection/pages/components/footer/index.js +18 -0
  233. package/dist/collection/pages/components/icon/index.js +18 -0
  234. package/dist/collection/pages/components/input/index.js +27 -0
  235. package/dist/collection/pages/components/item/index.js +18 -0
  236. package/dist/collection/pages/components/list/index.js +19 -0
  237. package/dist/collection/pages/components/message/index.js +47 -0
  238. package/dist/collection/pages/components/radio/index.js +19 -0
  239. package/dist/collection/pages/components/scrim/index.js +113 -0
  240. package/dist/collection/pages/components/select/index.js +36 -0
  241. package/dist/collection/pages/components/step/index.js +33 -0
  242. package/dist/collection/pages/components/switch/index.js +18 -0
  243. package/dist/collection/pages/components/tab/index.js +18 -0
  244. package/dist/collection/pages/components/table/index.js +18 -0
  245. package/dist/collection/pages/components/tag/index.js +18 -0
  246. package/dist/collection/pages/components/textarea/index.js +19 -0
  247. package/dist/collection/pages/components/upload/index.js +19 -0
  248. package/dist/collection/pages/scripts/menu.js +294 -0
  249. package/dist/collection/pages/scripts/pageLoader.js +179 -0
  250. package/dist/collection/utils/css-variables.js +10 -0
  251. package/dist/collection/utils/css-variables.js.map +1 -0
  252. package/dist/collection/utils/helpers.js +17 -0
  253. package/dist/collection/utils/helpers.js.map +1 -0
  254. package/dist/collection/utils/interfaces.js +2 -0
  255. package/dist/collection/utils/interfaces.js.map +1 -0
  256. package/dist/collection/utils/stack-manager.js +5 -0
  257. package/dist/collection/utils/stack-manager.js.map +1 -0
  258. package/dist/collection/utils/types.js +2 -0
  259. package/dist/collection/utils/types.js.map +1 -0
  260. package/dist/collection/value-accessors/angular-value-accessor-config.js +41 -0
  261. package/dist/collection/value-accessors/angular-value-accessor-config.js.map +1 -0
  262. package/dist/collection/value-accessors/index.js +7 -0
  263. package/dist/collection/value-accessors/index.js.map +1 -0
  264. package/dist/collection/value-accessors/vue-model-config.js +22 -0
  265. package/dist/collection/value-accessors/vue-model-config.js.map +1 -0
  266. package/dist/components/br-avatar.d.ts +11 -0
  267. package/dist/components/br-avatar.js +209 -0
  268. package/dist/components/br-avatar.js.map +1 -0
  269. package/dist/components/br-breadcrumb.d.ts +11 -0
  270. package/dist/components/br-breadcrumb.js +474 -0
  271. package/dist/components/br-breadcrumb.js.map +1 -0
  272. package/dist/components/br-button.d.ts +11 -0
  273. package/dist/components/br-button.js +13 -0
  274. package/dist/components/br-button.js.map +1 -0
  275. package/dist/components/br-checkbox.d.ts +11 -0
  276. package/dist/components/br-checkbox.js +13 -0
  277. package/dist/components/br-checkbox.js.map +1 -0
  278. package/dist/components/br-checkgroup.d.ts +11 -0
  279. package/dist/components/br-checkgroup.js +179 -0
  280. package/dist/components/br-checkgroup.js.map +1 -0
  281. package/dist/components/br-collapse.d.ts +11 -0
  282. package/dist/components/br-collapse.js +13 -0
  283. package/dist/components/br-collapse.js.map +1 -0
  284. package/dist/components/br-divider.d.ts +11 -0
  285. package/dist/components/br-divider.js +13 -0
  286. package/dist/components/br-divider.js.map +1 -0
  287. package/dist/components/br-dropdown.d.ts +11 -0
  288. package/dist/components/br-dropdown.js +166 -0
  289. package/dist/components/br-dropdown.js.map +1 -0
  290. package/dist/components/br-footer-category.d.ts +11 -0
  291. package/dist/components/br-footer-category.js +169 -0
  292. package/dist/components/br-footer-category.js.map +1 -0
  293. package/dist/components/br-footer-item.d.ts +11 -0
  294. package/dist/components/br-footer-item.js +95 -0
  295. package/dist/components/br-footer-item.js.map +1 -0
  296. package/dist/components/br-footer-legal.d.ts +11 -0
  297. package/dist/components/br-footer-legal.js +85 -0
  298. package/dist/components/br-footer-legal.js.map +1 -0
  299. package/dist/components/br-footer-logo.d.ts +11 -0
  300. package/dist/components/br-footer-logo.js +112 -0
  301. package/dist/components/br-footer-logo.js.map +1 -0
  302. package/dist/components/br-footer-social.d.ts +11 -0
  303. package/dist/components/br-footer-social.js +116 -0
  304. package/dist/components/br-footer-social.js.map +1 -0
  305. package/dist/components/br-footer.d.ts +11 -0
  306. package/dist/components/br-footer.js +113 -0
  307. package/dist/components/br-footer.js.map +1 -0
  308. package/dist/components/br-icon.d.ts +11 -0
  309. package/dist/components/br-icon.js +13 -0
  310. package/dist/components/br-icon.js.map +1 -0
  311. package/dist/components/br-input.d.ts +11 -0
  312. package/dist/components/br-input.js +13 -0
  313. package/dist/components/br-input.js.map +1 -0
  314. package/dist/components/br-item.d.ts +11 -0
  315. package/dist/components/br-item.js +13 -0
  316. package/dist/components/br-item.js.map +1 -0
  317. package/dist/components/br-list.d.ts +11 -0
  318. package/dist/components/br-list.js +13 -0
  319. package/dist/components/br-list.js.map +1 -0
  320. package/dist/components/br-loading.d.ts +11 -0
  321. package/dist/components/br-loading.js +117 -0
  322. package/dist/components/br-loading.js.map +1 -0
  323. package/dist/components/br-message.d.ts +11 -0
  324. package/dist/components/br-message.js +197 -0
  325. package/dist/components/br-message.js.map +1 -0
  326. package/dist/components/br-radio.d.ts +11 -0
  327. package/dist/components/br-radio.js +13 -0
  328. package/dist/components/br-radio.js.map +1 -0
  329. package/dist/components/br-scrim.d.ts +11 -0
  330. package/dist/components/br-scrim.js +504 -0
  331. package/dist/components/br-scrim.js.map +1 -0
  332. package/dist/components/br-select.d.ts +11 -0
  333. package/dist/components/br-select.js +481 -0
  334. package/dist/components/br-select.js.map +1 -0
  335. package/dist/components/br-step-item.d.ts +11 -0
  336. package/dist/components/br-step-item.js +334 -0
  337. package/dist/components/br-step-item.js.map +1 -0
  338. package/dist/components/br-step.d.ts +11 -0
  339. package/dist/components/br-step.js +313 -0
  340. package/dist/components/br-step.js.map +1 -0
  341. package/dist/components/br-switch.d.ts +11 -0
  342. package/dist/components/br-switch.js +181 -0
  343. package/dist/components/br-switch.js.map +1 -0
  344. package/dist/components/br-tab-item.d.ts +11 -0
  345. package/dist/components/br-tab-item.js +142 -0
  346. package/dist/components/br-tab-item.js.map +1 -0
  347. package/dist/components/br-tab.d.ts +11 -0
  348. package/dist/components/br-tab.js +323 -0
  349. package/dist/components/br-tab.js.map +1 -0
  350. package/dist/components/br-table-cell.d.ts +11 -0
  351. package/dist/components/br-table-cell.js +118 -0
  352. package/dist/components/br-table-cell.js.map +1 -0
  353. package/dist/components/br-table-header-cell.d.ts +11 -0
  354. package/dist/components/br-table-header-cell.js +108 -0
  355. package/dist/components/br-table-header-cell.js.map +1 -0
  356. package/dist/components/br-table-header-row.d.ts +11 -0
  357. package/dist/components/br-table-header-row.js +76 -0
  358. package/dist/components/br-table-header-row.js.map +1 -0
  359. package/dist/components/br-table-row.d.ts +11 -0
  360. package/dist/components/br-table-row.js +69 -0
  361. package/dist/components/br-table-row.js.map +1 -0
  362. package/dist/components/br-table.d.ts +11 -0
  363. package/dist/components/br-table.js +86 -0
  364. package/dist/components/br-table.js.map +1 -0
  365. package/dist/components/br-tag.d.ts +11 -0
  366. package/dist/components/br-tag.js +311 -0
  367. package/dist/components/br-tag.js.map +1 -0
  368. package/dist/components/br-textarea.d.ts +11 -0
  369. package/dist/components/br-textarea.js +200 -0
  370. package/dist/components/br-textarea.js.map +1 -0
  371. package/dist/components/br-upload.d.ts +11 -0
  372. package/dist/components/br-upload.js +252 -0
  373. package/dist/components/br-upload.js.map +1 -0
  374. package/dist/components/index.d.ts +108 -0
  375. package/dist/components/index.js +79 -0
  376. package/dist/components/index.js.map +1 -0
  377. package/dist/components/p-3FoEWz-F.js +136 -0
  378. package/dist/components/p-3FoEWz-F.js.map +1 -0
  379. package/dist/components/p-BBbnZnbw.js +2043 -0
  380. package/dist/components/p-BBbnZnbw.js.map +1 -0
  381. package/dist/components/p-BRKK5nMe.js +22 -0
  382. package/dist/components/p-BRKK5nMe.js.map +1 -0
  383. package/dist/components/p-Ck6Q_B7P.js +190 -0
  384. package/dist/components/p-Ck6Q_B7P.js.map +1 -0
  385. package/dist/components/p-CtvDP3zf.js +161 -0
  386. package/dist/components/p-CtvDP3zf.js.map +1 -0
  387. package/dist/components/p-DlMJ2wZW.js +184 -0
  388. package/dist/components/p-DlMJ2wZW.js.map +1 -0
  389. package/dist/components/p-IQdim5XJ.js +207 -0
  390. package/dist/components/p-IQdim5XJ.js.map +1 -0
  391. package/dist/components/p-THYai_l5.js +386 -0
  392. package/dist/components/p-THYai_l5.js.map +1 -0
  393. package/dist/components/p-brOPUYUL.js +385 -0
  394. package/dist/components/p-brOPUYUL.js.map +1 -0
  395. package/dist/components/p-jx7aLpDh.js +2273 -0
  396. package/dist/components/p-jx7aLpDh.js.map +1 -0
  397. package/dist/components/p-pq3SZemh.js +237 -0
  398. package/dist/components/p-pq3SZemh.js.map +1 -0
  399. package/dist/custom-docs/docs-utils.js +124 -0
  400. package/dist/custom-docs/docs-utils.js.map +1 -0
  401. package/dist/custom-docs/markdown-css-props.js +26 -0
  402. package/dist/custom-docs/markdown-css-props.js.map +1 -0
  403. package/dist/custom-docs/markdown-dependencies.js +59 -0
  404. package/dist/custom-docs/markdown-dependencies.js.map +1 -0
  405. package/dist/custom-docs/markdown-events-all.js +29 -0
  406. package/dist/custom-docs/markdown-events-all.js.map +1 -0
  407. package/dist/custom-docs/markdown-events.js +34 -0
  408. package/dist/custom-docs/markdown-events.js.map +1 -0
  409. package/dist/custom-docs/markdown-examples.js +23 -0
  410. package/dist/custom-docs/markdown-examples.js.map +1 -0
  411. package/dist/custom-docs/markdown-methods-all.js +28 -0
  412. package/dist/custom-docs/markdown-methods-all.js.map +1 -0
  413. package/dist/custom-docs/markdown-methods.js +56 -0
  414. package/dist/custom-docs/markdown-methods.js.map +1 -0
  415. package/dist/custom-docs/markdown-overview.js +21 -0
  416. package/dist/custom-docs/markdown-overview.js.map +1 -0
  417. package/dist/custom-docs/markdown-parts.js +30 -0
  418. package/dist/custom-docs/markdown-parts.js.map +1 -0
  419. package/dist/custom-docs/markdown-props-all.js +54 -0
  420. package/dist/custom-docs/markdown-props-all.js.map +1 -0
  421. package/dist/custom-docs/markdown-props.js +57 -0
  422. package/dist/custom-docs/markdown-props.js.map +1 -0
  423. package/dist/custom-docs/markdown-sections.js +30 -0
  424. package/dist/custom-docs/markdown-sections.js.map +1 -0
  425. package/dist/custom-docs/markdown-slots-all.js +22 -0
  426. package/dist/custom-docs/markdown-slots-all.js.map +1 -0
  427. package/dist/custom-docs/markdown-slots.js +30 -0
  428. package/dist/custom-docs/markdown-slots.js.map +1 -0
  429. package/dist/custom-docs/output-docs.js +151 -0
  430. package/dist/custom-docs/output-docs.js.map +1 -0
  431. package/dist/custom-docs/path.js +206 -0
  432. package/dist/custom-docs/path.js.map +1 -0
  433. package/dist/custom-docs/sort-markdown-tables.js +34 -0
  434. package/dist/custom-docs/sort-markdown-tables.js.map +1 -0
  435. package/dist/custom-elements.json +8905 -0
  436. package/dist/esm/app-globals-DVjNHTTs.js +10 -0
  437. package/dist/esm/app-globals-DVjNHTTs.js.map +1 -0
  438. package/dist/esm/br-avatar.entry.js +128 -0
  439. package/dist/esm/br-avatar.entry.js.map +1 -0
  440. package/dist/esm/br-breadcrumb.entry.js +307 -0
  441. package/dist/esm/br-breadcrumb.entry.js.map +1 -0
  442. package/dist/esm/br-button.br-icon.entry.js.map +1 -0
  443. package/dist/esm/br-button_2.entry.js +2510 -0
  444. package/dist/esm/br-button_2.entry.js.map +1 -0
  445. package/dist/esm/br-checkbox.entry.js +154 -0
  446. package/dist/esm/br-checkbox.entry.js.map +1 -0
  447. package/dist/esm/br-checkgroup.entry.js +115 -0
  448. package/dist/esm/br-checkgroup.entry.js.map +1 -0
  449. package/dist/esm/br-collapse.br-list.entry.js.map +1 -0
  450. package/dist/esm/br-collapse_2.entry.js +283 -0
  451. package/dist/esm/br-collapse_2.entry.js.map +1 -0
  452. package/dist/esm/br-divider.entry.js +84 -0
  453. package/dist/esm/br-divider.entry.js.map +1 -0
  454. package/dist/esm/br-dropdown.entry.js +107 -0
  455. package/dist/esm/br-dropdown.entry.js.map +1 -0
  456. package/dist/esm/br-footer-category.entry.js +108 -0
  457. package/dist/esm/br-footer-category.entry.js.map +1 -0
  458. package/dist/esm/br-footer-item.entry.js +50 -0
  459. package/dist/esm/br-footer-item.entry.js.map +1 -0
  460. package/dist/esm/br-footer-legal.entry.js +41 -0
  461. package/dist/esm/br-footer-legal.entry.js.map +1 -0
  462. package/dist/esm/br-footer-logo.entry.js +72 -0
  463. package/dist/esm/br-footer-logo.entry.js.map +1 -0
  464. package/dist/esm/br-footer-social.entry.js +55 -0
  465. package/dist/esm/br-footer-social.entry.js.map +1 -0
  466. package/dist/esm/br-footer.entry.js +47 -0
  467. package/dist/esm/br-footer.entry.js.map +1 -0
  468. package/dist/esm/br-input.br-radio.entry.js.map +1 -0
  469. package/dist/esm/br-input_2.entry.js +413 -0
  470. package/dist/esm/br-input_2.entry.js.map +1 -0
  471. package/dist/esm/br-item.entry.js +307 -0
  472. package/dist/esm/br-item.entry.js.map +1 -0
  473. package/dist/esm/br-loading.entry.js +56 -0
  474. package/dist/esm/br-loading.entry.js.map +1 -0
  475. package/dist/esm/br-message.entry.js +112 -0
  476. package/dist/esm/br-message.entry.js.map +1 -0
  477. package/dist/esm/br-scrim.entry.js +454 -0
  478. package/dist/esm/br-scrim.entry.js.map +1 -0
  479. package/dist/esm/br-select.entry.js +330 -0
  480. package/dist/esm/br-select.entry.js.map +1 -0
  481. package/dist/esm/br-step-item.entry.js +243 -0
  482. package/dist/esm/br-step-item.entry.js.map +1 -0
  483. package/dist/esm/br-step.entry.js +281 -0
  484. package/dist/esm/br-step.entry.js.map +1 -0
  485. package/dist/esm/br-switch.entry.js +121 -0
  486. package/dist/esm/br-switch.entry.js.map +1 -0
  487. package/dist/esm/br-tab-item.entry.js +74 -0
  488. package/dist/esm/br-tab-item.entry.js.map +1 -0
  489. package/dist/esm/br-tab.entry.js +292 -0
  490. package/dist/esm/br-tab.entry.js.map +1 -0
  491. package/dist/esm/br-table-cell.entry.js +79 -0
  492. package/dist/esm/br-table-cell.entry.js.map +1 -0
  493. package/dist/esm/br-table-header-cell.entry.js +68 -0
  494. package/dist/esm/br-table-header-cell.entry.js.map +1 -0
  495. package/dist/esm/br-table-header-row.entry.js +42 -0
  496. package/dist/esm/br-table-header-row.entry.js.map +1 -0
  497. package/dist/esm/br-table-row.entry.js +34 -0
  498. package/dist/esm/br-table-row.entry.js.map +1 -0
  499. package/dist/esm/br-table.entry.js +42 -0
  500. package/dist/esm/br-table.entry.js.map +1 -0
  501. package/dist/esm/br-tag.entry.js +196 -0
  502. package/dist/esm/br-tag.entry.js.map +1 -0
  503. package/dist/esm/br-textarea.entry.js +120 -0
  504. package/dist/esm/br-textarea.entry.js.map +1 -0
  505. package/dist/esm/br-upload.entry.js +149 -0
  506. package/dist/esm/br-upload.entry.js.map +1 -0
  507. package/dist/esm/helpers-BRKK5nMe.js +21 -0
  508. package/dist/esm/helpers-BRKK5nMe.js.map +1 -0
  509. package/dist/esm/index-ClsF4De3.js +2400 -0
  510. package/dist/esm/index-ClsF4De3.js.map +1 -0
  511. package/dist/esm/index.js +7 -0
  512. package/dist/esm/index.js.map +1 -0
  513. package/dist/esm/loader.js +18 -0
  514. package/dist/esm/loader.js.map +1 -0
  515. package/dist/esm/webcomponents.js +49 -0
  516. package/dist/esm/webcomponents.js.map +1 -0
  517. package/dist/hydrate/index.d.ts +259 -0
  518. package/dist/hydrate/index.js +26723 -0
  519. package/dist/hydrate/index.mjs +26717 -0
  520. package/dist/hydrate/package.json +12 -0
  521. package/dist/index.cjs.js +1 -0
  522. package/dist/index.js +1 -0
  523. package/dist/loader/cdn.js +5 -0
  524. package/dist/loader/index.cjs.js +5 -0
  525. package/dist/loader/index.d.ts +24 -0
  526. package/dist/loader/index.es2017.js +5 -0
  527. package/dist/loader/index.js +6 -0
  528. package/dist/stencil.config.js +177 -0
  529. package/dist/stencil.config.js.map +1 -0
  530. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/docs-utils.d.ts +7 -0
  531. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-css-props.d.ts +2 -0
  532. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-dependencies.d.ts +2 -0
  533. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-events-all.d.ts +2 -0
  534. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-events.d.ts +2 -0
  535. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-examples.d.ts +2 -0
  536. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-methods-all.d.ts +2 -0
  537. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-methods.d.ts +2 -0
  538. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-overview.d.ts +6 -0
  539. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-parts.d.ts +7 -0
  540. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-props-all.d.ts +2 -0
  541. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-props.d.ts +2 -0
  542. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-sections.d.ts +2 -0
  543. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-slots-all.d.ts +2 -0
  544. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/markdown-slots.d.ts +7 -0
  545. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/output-docs.d.ts +2 -0
  546. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/path.d.ts +36 -0
  547. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/custom-docs/sort-markdown-tables.d.ts +1 -0
  548. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/.stencil/packages/webcomponents/stencil.config.d.ts +2 -0
  549. package/dist/types/components/avatar/avatar.d.ts +74 -0
  550. package/dist/types/components/breadcrumb/breadcrumb.d.ts +158 -0
  551. package/dist/types/components/button/button.d.ts +68 -0
  552. package/dist/types/components/checkbox/checkbox.d.ts +89 -0
  553. package/dist/types/components/checkgroup/checkgroup.d.ts +52 -0
  554. package/dist/types/components/collapse/collapse.d.ts +114 -0
  555. package/dist/types/components/divider/divider.d.ts +34 -0
  556. package/dist/types/components/dropdown/dropdown.d.ts +67 -0
  557. package/dist/types/components/footer/footer.d.ts +37 -0
  558. package/dist/types/components/footer-category/footer-category.d.ts +81 -0
  559. package/dist/types/components/footer-item/footer-item.d.ts +39 -0
  560. package/dist/types/components/footer-legal/footer-legal.d.ts +24 -0
  561. package/dist/types/components/footer-logo/footer-logo.d.ts +49 -0
  562. package/dist/types/components/footer-social/footer-social.d.ts +38 -0
  563. package/dist/types/components/icon/icon.d.ts +61 -0
  564. package/dist/types/components/input/input.d.ts +158 -0
  565. package/dist/types/components/item/item.d.ts +109 -0
  566. package/dist/types/components/list/list.d.ts +75 -0
  567. package/dist/types/components/loading/loading.d.ts +37 -0
  568. package/dist/types/components/message/message.d.ts +75 -0
  569. package/dist/types/components/radio/radio.d.ts +85 -0
  570. package/dist/types/components/scrim/scrim.d.ts +128 -0
  571. package/dist/types/components/select/select.d.ts +119 -0
  572. package/dist/types/components/step/step.d.ts +103 -0
  573. package/dist/types/components/step-item/step-item.d.ts +102 -0
  574. package/dist/types/components/switch/switch.d.ts +80 -0
  575. package/dist/types/components/tab/tab.d.ts +103 -0
  576. package/dist/types/components/tab-item/tab-item.d.ts +52 -0
  577. package/dist/types/components/table/table.d.ts +27 -0
  578. package/dist/types/components/table-cell/table-cell.d.ts +50 -0
  579. package/dist/types/components/table-header-cell/table-header-cell.d.ts +39 -0
  580. package/dist/types/components/table-header-row/table-header-row.d.ts +27 -0
  581. package/dist/types/components/table-row/table-row.d.ts +19 -0
  582. package/dist/types/components/tag/tag.d.ts +95 -0
  583. package/dist/types/components/textarea/textarea.d.ts +70 -0
  584. package/dist/types/components/upload/upload.d.ts +66 -0
  585. package/dist/types/components.d.ts +3328 -0
  586. package/dist/types/index.d.ts +10 -0
  587. package/dist/types/stencil-public-runtime.d.ts +1681 -0
  588. package/dist/types/utils/css-variables.d.ts +5 -0
  589. package/dist/types/utils/helpers.d.ts +8 -0
  590. package/dist/types/utils/interfaces.d.ts +3 -0
  591. package/dist/types/utils/stack-manager.d.ts +0 -0
  592. package/dist/types/utils/types.d.ts +1 -0
  593. package/dist/types/value-accessors/angular-value-accessor-config.d.ts +6 -0
  594. package/dist/types/value-accessors/index.d.ts +2 -0
  595. package/dist/types/value-accessors/vue-model-config.d.ts +2 -0
  596. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -0
  597. package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -0
  598. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -0
  599. package/dist/webcomponents/br-checkbox.entry.esm.js.map +1 -0
  600. package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -0
  601. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -0
  602. package/dist/webcomponents/br-divider.entry.esm.js.map +1 -0
  603. package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -0
  604. package/dist/webcomponents/br-footer-category.entry.esm.js.map +1 -0
  605. package/dist/webcomponents/br-footer-item.entry.esm.js.map +1 -0
  606. package/dist/webcomponents/br-footer-legal.entry.esm.js.map +1 -0
  607. package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -0
  608. package/dist/webcomponents/br-footer-social.entry.esm.js.map +1 -0
  609. package/dist/webcomponents/br-footer.entry.esm.js.map +1 -0
  610. package/dist/webcomponents/br-input.br-radio.entry.esm.js.map +1 -0
  611. package/dist/webcomponents/br-item.entry.esm.js.map +1 -0
  612. package/dist/webcomponents/br-loading.entry.esm.js.map +1 -0
  613. package/dist/webcomponents/br-message.entry.esm.js.map +1 -0
  614. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -0
  615. package/dist/webcomponents/br-select.entry.esm.js.map +1 -0
  616. package/dist/webcomponents/br-step-item.entry.esm.js.map +1 -0
  617. package/dist/webcomponents/br-step.entry.esm.js.map +1 -0
  618. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -0
  619. package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -0
  620. package/dist/webcomponents/br-tab.entry.esm.js.map +1 -0
  621. package/dist/webcomponents/br-table-cell.entry.esm.js.map +1 -0
  622. package/dist/webcomponents/br-table-header-cell.entry.esm.js.map +1 -0
  623. package/dist/webcomponents/br-table-header-row.entry.esm.js.map +1 -0
  624. package/dist/webcomponents/br-table-row.entry.esm.js.map +1 -0
  625. package/dist/webcomponents/br-table.entry.esm.js.map +1 -0
  626. package/dist/webcomponents/br-tag.entry.esm.js.map +1 -0
  627. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -0
  628. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -0
  629. package/dist/webcomponents/index.esm.js +7 -0
  630. package/dist/webcomponents/index.esm.js.map +1 -0
  631. package/dist/webcomponents/loader.esm.js.map +1 -0
  632. package/dist/webcomponents/p-0447cdba.entry.js +389 -0
  633. package/dist/webcomponents/p-0447cdba.entry.js.map +1 -0
  634. package/dist/webcomponents/p-11862752.entry.js +178 -0
  635. package/dist/webcomponents/p-11862752.entry.js.map +1 -0
  636. package/dist/webcomponents/p-134cb974.entry.js +88 -0
  637. package/dist/webcomponents/p-134cb974.entry.js.map +1 -0
  638. package/dist/webcomponents/p-1cf7cc9c.entry.js +86 -0
  639. package/dist/webcomponents/p-1cf7cc9c.entry.js.map +1 -0
  640. package/dist/webcomponents/p-206222bd.entry.js +61 -0
  641. package/dist/webcomponents/p-206222bd.entry.js.map +1 -0
  642. package/dist/webcomponents/p-2068764a.entry.js +61 -0
  643. package/dist/webcomponents/p-2068764a.entry.js.map +1 -0
  644. package/dist/webcomponents/p-23a4fcb7.entry.js +164 -0
  645. package/dist/webcomponents/p-23a4fcb7.entry.js.map +1 -0
  646. package/dist/webcomponents/p-28ea059b.entry.js +149 -0
  647. package/dist/webcomponents/p-28ea059b.entry.js.map +1 -0
  648. package/dist/webcomponents/p-314c0445.entry.js +44 -0
  649. package/dist/webcomponents/p-314c0445.entry.js.map +1 -0
  650. package/dist/webcomponents/p-316ca203.entry.js +105 -0
  651. package/dist/webcomponents/p-316ca203.entry.js.map +1 -0
  652. package/dist/webcomponents/p-421fbea1.entry.js +258 -0
  653. package/dist/webcomponents/p-421fbea1.entry.js.map +1 -0
  654. package/dist/webcomponents/p-4e7ea644.entry.js +79 -0
  655. package/dist/webcomponents/p-4e7ea644.entry.js.map +1 -0
  656. package/dist/webcomponents/p-516a7306.entry.js +51 -0
  657. package/dist/webcomponents/p-516a7306.entry.js.map +1 -0
  658. package/dist/webcomponents/p-5a36e6be.entry.js +399 -0
  659. package/dist/webcomponents/p-5a36e6be.entry.js.map +1 -0
  660. package/dist/webcomponents/p-658ace55.entry.js +52 -0
  661. package/dist/webcomponents/p-658ace55.entry.js.map +1 -0
  662. package/dist/webcomponents/p-6c43ab50.entry.js +167 -0
  663. package/dist/webcomponents/p-6c43ab50.entry.js.map +1 -0
  664. package/dist/webcomponents/p-713035b5.entry.js +344 -0
  665. package/dist/webcomponents/p-713035b5.entry.js.map +1 -0
  666. package/dist/webcomponents/p-7fe9c7a6.entry.js +282 -0
  667. package/dist/webcomponents/p-7fe9c7a6.entry.js.map +1 -0
  668. package/dist/webcomponents/p-8beb9c43.entry.js +117 -0
  669. package/dist/webcomponents/p-8beb9c43.entry.js.map +1 -0
  670. package/dist/webcomponents/p-8fe3366e.entry.js +484 -0
  671. package/dist/webcomponents/p-8fe3366e.entry.js.map +1 -0
  672. package/dist/webcomponents/p-97a81778.entry.js +72 -0
  673. package/dist/webcomponents/p-97a81778.entry.js.map +1 -0
  674. package/dist/webcomponents/p-BRKK5nMe.js +22 -0
  675. package/dist/webcomponents/p-BRKK5nMe.js.map +1 -0
  676. package/dist/webcomponents/p-ClsF4De3.js +2266 -0
  677. package/dist/webcomponents/p-ClsF4De3.js.map +1 -0
  678. package/dist/webcomponents/p-DVjNHTTs.js +9 -0
  679. package/dist/webcomponents/p-DVjNHTTs.js.map +1 -0
  680. package/dist/webcomponents/p-ab251560.entry.js +141 -0
  681. package/dist/webcomponents/p-ab251560.entry.js.map +1 -0
  682. package/dist/webcomponents/p-ac1f9283.entry.js +277 -0
  683. package/dist/webcomponents/p-ac1f9283.entry.js.map +1 -0
  684. package/dist/webcomponents/p-ad61c1ff.entry.js +153 -0
  685. package/dist/webcomponents/p-ad61c1ff.entry.js.map +1 -0
  686. package/dist/webcomponents/p-ad8edd59.entry.js +210 -0
  687. package/dist/webcomponents/p-ad8edd59.entry.js.map +1 -0
  688. package/dist/webcomponents/p-bc417fe6.entry.js +2372 -0
  689. package/dist/webcomponents/p-bc417fe6.entry.js.map +1 -0
  690. package/dist/webcomponents/p-c3267481.entry.js +462 -0
  691. package/dist/webcomponents/p-c3267481.entry.js.map +1 -0
  692. package/dist/webcomponents/p-ca5c62c2.entry.js +108 -0
  693. package/dist/webcomponents/p-ca5c62c2.entry.js.map +1 -0
  694. package/dist/webcomponents/p-d0f538be.entry.js +83 -0
  695. package/dist/webcomponents/p-d0f538be.entry.js.map +1 -0
  696. package/dist/webcomponents/p-dbfc2a44.entry.js +354 -0
  697. package/dist/webcomponents/p-dbfc2a44.entry.js.map +1 -0
  698. package/dist/webcomponents/p-e510f79c.entry.js +89 -0
  699. package/dist/webcomponents/p-e510f79c.entry.js.map +1 -0
  700. package/dist/webcomponents/p-f246829a.entry.js +297 -0
  701. package/dist/webcomponents/p-f246829a.entry.js.map +1 -0
  702. package/dist/webcomponents/p-f9f7d333.entry.js +145 -0
  703. package/dist/webcomponents/p-f9f7d333.entry.js.map +1 -0
  704. package/dist/webcomponents/webcomponents.esm.js +418 -0
  705. package/dist/webcomponents/webcomponents.esm.js.map +1 -0
  706. package/dist/webcomponents.html-custom-data.json +737 -0
  707. package/package.json +17 -95
  708. package/README.md +0 -158
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-divider.entry.esm.js","sources":["../../packages/webcomponents/src/components/divider/divider.scss?tag=br-divider&encapsulation=shadow","../../packages/webcomponents/src/components/divider/divider.tsx"],"sourcesContent":[":host {\n display: block;\n\n .br-divider {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 20px 0;\n border: none;\n background-color: transparent;\n\n &::before,\n &::after {\n content: \"\";\n flex: 1;\n border-top: var(--divider-size, 1px) solid var(--border-color, black);\n }\n\n &.dashed {\n border-top: none;\n background: none;\n\n &::before,\n &::after {\n border-top: var(--divider-size, 1px) dashed var(--border-color);\n }\n }\n\n &.dashed.vertical {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n }\n }\n\n &.vertical {\n flex-direction: column;\n height: 100%;\n width: auto;\n margin: 0 10px;\n align-self: stretch;\n border-right-width: var(--divider-size);\n border-top-width: 0;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) solid var(--border-color, black);\n border-top: none;\n margin: 0;\n }\n }\n\n &.small {\n --divider-size: var(--surface-width-sm);\n }\n\n &.medium {\n --divider-size: var(--surface-width-md);\n }\n\n &.large {\n --divider-size: var(--surface-width-lg);\n }\n\n &.divider-left {\n justify-content: flex-start;\n\n &::before {\n flex: 0 0 0px;\n margin-right: var(--spacing-scale-base);\n }\n }\n\n &.divider-center {\n justify-content: center;\n }\n\n &.divider-right {\n justify-content: flex-end;\n\n &::after {\n flex: 0 0 0px;\n margin-left: var(--spacing-scale-base);\n }\n }\n }\n\n .divider-left::after,\n .divider-center::before,\n .divider-center::after,\n .divider-right::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-left::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-right::after {\n margin-left: var(--spacing-scale-base);\n }\n\n :host(:empty)::before,\n :host(:empty)::after {\n margin: 0;\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/divider?tab=designer).\n *\n * @slot default - Conteúdo opcional que pode ser exibido dentro do divisor, como texto, ícones ou outros elementos personalizados.\n */\n@Component({\n tag: 'br-divider',\n styleUrl: 'divider.scss',\n shadow: true,\n})\nexport class Divider {\n @Element() el: HTMLBrDividerElement\n\n /** Identificador único */\n @Prop({ reflect: true }) readonly customId: string = `br-divider-${dividerId++}`\n\n /** Define a orientação */\n @Prop({ reflect: true }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\n /** Modifica a espessura da linha */\n @Prop({ reflect: true }) thickness: 'small' | 'medium' | 'large' = 'small'\n\n /** Modifica o estilo da linha */\n @Prop({ reflect: true }) borderStyle: 'dashed' | 'solid' = 'solid'\n\n /** Ativa o modo escuro */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /** Define a cor da linha */\n @Prop({ reflect: true }) color: string = ''\n\n /** Alinhamento do texto do divider */\n @Prop() align: 'left' | 'center' | 'right'\n\n /** Define se o divider deve ocupar toda a largura do container pai */\n @Prop() bleed: boolean = false\n\n @State() slotDefault: boolean = false\n\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n connectedCallback() {\n this.hasSlotContentDefault()\n }\n\n componentDidLoad() {\n if (this.orientation === 'vertical') {\n this.el.parentElement?.style.setProperty('display', 'flex')\n }\n if (this.bleed) {\n this.applyPaddingToChild()\n window.addEventListener('resize', this.applyPaddingToChild.bind(this))\n }\n this.updateColor()\n }\n\n disconnectedCallback() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyPaddingToChild.bind(this))\n }\n }\n\n private hasSlotContentDefault(): void {\n this.slotDefault = this.el.innerHTML.trim() !== ''\n }\n\n private getPaddingOfParent() {\n const parent = this.el.parentElement\n if (parent !== null) {\n const style = getComputedStyle(parent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n private applyPaddingToChild() {\n const { paddingLeft, paddingRight } = this.getPaddingOfParent()\n const child = this.el.shadowRoot?.querySelector('.br-divider')\n child.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n render() {\n return (\n <Host>\n {this.slotDefault ? (\n <div\n class={this.getCssClassMap()}\n role=\"separator\"\n aria-orientation={this.orientation}\n aria-labelledby={this.customId}\n >\n <span id={this.customId}>\n <slot></slot>\n </span>\n </div>\n ) : (\n <hr class={this.getCssClassMap()} />\n )}\n </Host>\n )\n }\n}\n\nlet dividerId = 0\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-dropdown.entry.esm.js","sources":["../../packages/webcomponents/src/components/dropdown/dropdown.scss?tag=br-dropdown&encapsulation=shadow","../../packages/webcomponents/src/components/dropdown/dropdown.tsx"],"sourcesContent":[":host {\n display: block;\n position: relative;\n\n #trigger {\n display: inline-block;\n cursor: pointer;\n }\n\n #target {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n }\n}\n\n:host([is-open]) {\n #target {\n display: block;\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot que recebe o elemento acionador\n * @slot target - Slot que recebe o elemento alvo\n */\n@Component({\n tag: 'br-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Dropdown {\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: HTMLBrDropdownElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Indica se o dropdown está aberto ou fechado.\n * Esta propriedade é refletida no DOM e pode ser alterada externamente.\n * O valor padrão é falso (fechado).\n */\n @Prop({ reflect: true, mutable: true }) isOpen: 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-dropdown-${dropdownId++}`\n\n /**\n * Método chamado sempre que a propriedade `isOpen` muda.\n * Emite um evento com o novo estado do dropdown.\n */\n @Watch('isOpen')\n isOpenChanged() {\n this.brDropdownChange.emit({ 'is-opened': this.isOpen })\n }\n\n connectedCallback() {\n document.addEventListener('click', this.onClickOutside.bind(this))\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.onClickOutside.bind(this))\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-dropdown': true,\n }\n }\n\n /**\n * Alterna o estado do dropdown entre aberto e fechado.\n */\n private readonly toggle = (event: Event) => {\n event.stopPropagation()\n this.isOpen = !this.isOpen\n }\n\n /**\n * Método que lida com cliques fora do dropdown.\n *\n * @param {MouseEvent} event - O evento de clique que ocorreu.\n */\n private onClickOutside(event: MouseEvent) {\n const path = event.composedPath()\n const dropdownElement = this.el.shadowRoot.querySelector('#target')\n\n if (dropdownElement && !path.includes(dropdownElement)) {\n this.hide()\n }\n }\n\n /**\n * Abre o dropdown.\n * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.\n * Este método é marcado com @Method() para que possa ser chamado externamente.\n */\n @Method()\n async open(): Promise<{ isOpen: boolean }> {\n this.isOpen = true\n return { isOpen: this.isOpen } // Retorna o novo estado\n }\n\n /**\n * Esconde o dropdown.\n * Define a propriedade `isOpen` como falsa e retorna o novo estado.\n * Este método é marcado com @Method() para que possa ser chamado externamente.\n */\n @Method()\n async hide(): Promise<{ isOpen: boolean }> {\n this.isOpen = false\n return { isOpen: this.isOpen } // Retorna o novo estado\n }\n\n render() {\n return (\n <Host is-open={this.isOpen}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div\n id=\"trigger\"\n onClick={this.toggle}\n aria-controls=\"target\"\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen}\n >\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen}>\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,WAAW,GAAG,ok0DAAok0D;;MCgB3k0D,QAAQ,GAAA,MAAA;;;;;;;;;;;;;AAOA,IAAA,gBAAgB;AAEnC;;;;AAIG;IACqC,MAAM,GAAY,KAAK;AAE/D;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,CAAA,YAAA,EAAe,UAAU,EAAE,EAAE;AAElF;;;AAGG;IAEH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;IAG1D,iBAAiB,GAAA;AACf,QAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGpE,oBAAoB,GAAA;AAClB,QAAA,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAGvE;;AAEG;AACM,IAAA,gBAAgB;IAEjB,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,aAAa,EAAE,IAAI;SACpB;;AAGH;;AAEG;AACc,IAAA,MAAM,GAAG,CAAC,KAAY,KAAI;QACzC,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;AAC5B,KAAC;AAED;;;;AAIG;AACK,IAAA,cAAc,CAAC,KAAiB,EAAA;AACtC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE;AACjC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;QAEnE,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YACtD,IAAI,CAAC,IAAI,EAAE;;;AAIf;;;;AAIG;AAEH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;;AAGhC;;;;AAIG;AAEH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;;IAGhC,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAU,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAA,EAAA,IAAI,CAAC,MAAM,EAAA,EACxB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAA,EAClD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAC,SAAS,EACZ,OAAO,EAAE,IAAI,CAAC,MAAM,EAAA,eAAA,EACN,QAAQ,EACR,eAAA,EAAA,MAAM,EACL,eAAA,EAAA,IAAI,CAAC,MAAM,EAAA,EAE1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,SAAS,EAAA,CAAQ,CACxB,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,EAAE,EAAC,QAAQ,iBAAc,CAAC,IAAI,CAAC,MAAM,EAAA,EACxC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAQ,CACvB,CACF,CACD;;;;;;;AAKb,IAAI,UAAU,GAAG,CAAC;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-category.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-category/footer-category.scss?tag=br-footer-category&encapsulation=shadow","../../packages/webcomponents/src/components/footer-category/footer-category.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n@media (width >= 992px) {\n .br-footer-category {\n padding-bottom: 48px;\n }\n}\n","import { Component, Element, h, Host, Prop, State } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-category` representa o mapa do site, de acordo com a documentação de design do GovBR.\n *\n * O `br-footer-category` deve ser utilizado com filho direto do componente [`br-footer`](/docs/components/footer) e possui um slot para os itens da categoria.\n * Esses itens são representados pelo componente [`br-footer-item`](/docs/components/footer-item).\n *\n * O componente `br-footer-category` é responsivo e se adapta a diferentes tamanhos de tela.\n * Em telas menores, ele se comporta como um accordion, enquanto em telas maiores, ele é exibido como uma lista.\n *\n * @slot default - Área destinada aos itens da categoria. Utilize o componente [`br-footer-item`](/docs/components/footer-item) para adicionar itens.\n */\n@Component({\n tag: 'br-footer-category',\n styleUrl: 'footer-category.scss',\n shadow: true,\n})\nexport class FooterCategory {\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: HTMLBrFooterCategoryElement\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 = Helpers.generateUniqueId()\n\n /**\n * Título da lista.\n * @default ''\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Define se o componente é exibido em um layout de desktop ou não.\n * @default false\n */\n @State() isDesktop: boolean = false\n\n /**\n * Define o nome do grupo de accordion.\n */\n @State() accordionGroup: string = null\n\n /**\n * Define o media query para o componente.\n * O media query é usado para determinar se o componente deve ser exibido em um layout de desktop ou não.\n */\n private mediaQuery: MediaQueryList\n\n /**\n * Define um nome para o grupo de accordion.\n * O nome do grupo é definido com base no atributo `custom-id` do elemento pai.\n */\n private setAccordionGroup() {\n this.accordionGroup = `group-${this.el.parentElement.getAttribute('custom-id')}`\n }\n\n /**\n * Método que retorna as classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-category': true,\n }\n }\n\n /**\n * Método que retorna as classes baseadas no tamanho da tela.\n */\n private getRootClassMap(): CssClassMap {\n return {\n 'col-2': this.isDesktop,\n col: !this.isDesktop,\n }\n }\n\n /**\n * Define o media query para o componente.\n * O media query é usado para determinar se o componente deve ser exibido em um layout de desktop ou não.\n * O valor padrão é `(min-width: 992px)`, que corresponde a telas de desktop.\n * O valor pode ser alterado para atender às necessidades específicas do projeto.\n * @default '(min-width: 992px)'\n */\n private setMedia() {\n this.mediaQuery = window.matchMedia('(min-width: 992px)')\n this.isDesktop = this.mediaQuery.matches\n this.mediaQuery.addEventListener('change', this.handleMediaQueryChange)\n }\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentWillLoad() {\n this.setMedia()\n this.setAccordionGroup()\n }\n\n /**\n * Método do ciclo de vida do componente, que é chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n this.mediaQuery.removeEventListener('change', this.handleMediaQueryChange)\n }\n\n /**\n * Trata a mudança de media query.\n * @param event O evento de mudança de media query.\n */\n private handleMediaQueryChange = (event: MediaQueryListEvent) => {\n this.isDesktop = event.matches\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host class={this.getRootClassMap()}>\n <br-list\n id={this.customId}\n class={this.getCssClassMap()}\n header={this.label}\n role=\"list\"\n hide-header-divider\n accordion={!this.isDesktop ? this.accordionGroup : null}\n >\n <slot></slot>\n </br-list>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,iBAAiB,GAAG,49zDAA49zD;;MCqBz+zD,cAAc,GAAA,MAAA;;;;;AAOzB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;;AAGG;IACsB,KAAK,GAAW,EAAE;AAE3C;;;AAGG;IACM,SAAS,GAAY,KAAK;AAEnC;;AAEG;IACM,cAAc,GAAW,IAAI;AAEtC;;;AAGG;AACK,IAAA,UAAU;AAElB;;;AAGG;IACK,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;;AAGlF;;AAEG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,oBAAoB,EAAE,IAAI;SAC3B;;AAGH;;AAEG;IACK,eAAe,GAAA;QACrB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;AACvB,YAAA,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;SACrB;;AAGH;;;;;;AAMG;IACK,QAAQ,GAAA;QACd,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;QACxC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;;AAGzE;;AAEG;IACH,iBAAiB,GAAA;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,iBAAiB,EAAE;;AAG1B;;AAEG;IACH,oBAAoB,GAAA;QAClB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;;AAG5E;;;AAGG;AACK,IAAA,sBAAsB,GAAG,CAAC,KAA0B,KAAI;AAC9D,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;AAChC,KAAC;AAED;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,EAAA,EACjC,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,MAAM,EAAE,IAAI,CAAC,KAAK,EAClB,IAAI,EAAC,MAAM,EAEX,qBAAA,EAAA,IAAA,EAAA,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,EAAA,EAEvD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACL,CACL;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-item/footer-item.scss?tag=br-footer-item&encapsulation=shadow","../../packages/webcomponents/src/components/footer-item/footer-item.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-item` deve ser utilizado juntamente com o subcomponente [`br-footer-category`](/docs/components/footer-category) para representar os itens dentro de uma categoria no rodapé.\n * De acordo com o a documentação de design do GovBR, esses dois subcomponentes formam o mapa do site.\n * Portanto sob esse contexto, o `br-footer-item` representa uma página no site.\n *\n * O `br-footer-item` deve ser utilizado como filho direto do componente [`br-footer-category`](/docs/components/footer-category).\n *\n * @slot default - Área destinada ao conteúdo do item.\n */\n@Component({\n tag: 'br-footer-item',\n styleUrl: 'footer-item.scss',\n shadow: true,\n})\nexport class FooterItem {\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: HTMLBrFooterItemElement\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 = Helpers.generateUniqueId()\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item.\n * Quando definido, o item será renderizado como um link.\n * @example 'https://www.gov.br'\n * @example '/home'\n * @example '#section'\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Monta o objeto com as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-item': true,\n }\n }\n\n /**\n * Renderiza o componente\n * @returns JSX do componente\n */\n render() {\n return (\n <Host>\n <br-item id={this.customId} href={this.href} role=\"listitem\" class={this.getCssClassMap()}>\n <slot></slot>\n </br-item>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,25zDAA25zD;;MCmBp6zD,UAAU,GAAA,MAAA;;;;;AAOrB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;;;;;AAMG;AAC+B,IAAA,IAAI;AAEtC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI;SACvB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAS,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EACvF,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACL,CACL;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-legal.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-legal/footer-legal.scss?tag=br-footer-legal&encapsulation=shadow","../../packages/webcomponents/src/components/footer-legal/footer-legal.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-info;\n\n:host {\n display: block;\n}\n\n.info {\n ::slotted(*) {\n font-size: var(--font-size-scale-down-01) !important;\n font-weight: 500 !important;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-legal` representa a área destinada a informações legais no rodapé do site, de acordo com a documentação de design do GovBR.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n *\n * @slot default - Área destinada a informações legais.\n */\n@Component({\n tag: 'br-footer-legal',\n styleUrl: 'footer-legal.scss',\n shadow: true,\n})\nexport class FooterLegal {\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: HTMLBrFooterLegalElement\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 = Helpers.generateUniqueId()\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-legal': true,\n info: true,\n 'text-down-01': true,\n 'text-medium': true,\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <br-divider></br-divider>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,cAAc,GAAG,mh0DAAmh0D;;MCgB7h0D,WAAW,GAAA,MAAA;;;;;AAOtB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;IAEvE,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,aAAa,EAAE,IAAI;SACpB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAyB,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACzB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-logo.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-logo/footer-logo.scss?tag=br-footer-logo&encapsulation=shadow","../../packages/webcomponents/src/components/footer-logo/footer-logo.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-logo;\n\n:host {\n display: block;\n}\n\n:host(.partner) {\n display: inline-block;\n}\n\n.logo {\n &.partner {\n margin-left: var(--spacing-scale-3x);\n text-decoration: none;\n padding: 0;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-logo` representa a logo principal do site ou a logo dos parceiros.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n * Para que ele represente a logo principal do site, o atributo `is-partner` deve ser definido como `false`, ou não deve ser definido.\n * Para que ele represente a logo de um parceiro, o atributo `is-partner` deve ser definido como `true`.\n */\n@Component({\n tag: 'br-footer-logo',\n styleUrl: 'footer-logo.scss',\n shadow: true,\n})\nexport class FooterLogo {\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: HTMLBrFooterLogoElement\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 = Helpers.generateUniqueId()\n\n /**\n * Url da logo padrão.\n */\n @Prop({ reflect: true }) src: string = ''\n\n /**\n * Descrição da logo.\n */\n @Prop({ reflect: true }) description: string = 'logo'\n\n /**\n * Posição da logo.\n */\n @Prop({ reflect: true }) position: 'left' | 'center' | 'right' = 'left'\n\n /**\n * Define se a logo é de um parceiro.\n */\n @Prop({ reflect: true }) readonly isPartner: boolean = false\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-logo': true,\n logo: true,\n 'text-sm-left': this.position === 'left',\n 'text-sm-center': this.position === 'center',\n 'text-sm-right': this.position === 'right',\n partner: this.isPartner,\n }\n }\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao host do componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao host do componente.\n */\n private getRootCssClassMap(): CssClassMap {\n return {\n partner: this.isPartner,\n }\n }\n\n /**\n * Monta o JSX que representa o componente.\n * @returns JSX que representa o componente.\n */\n render() {\n return (\n <Host class={this.getRootCssClassMap()}>\n <div id={this.customId} class={this.getCssClassMap()}>\n <img src={this.src} alt={this.description} />\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,8o0DAA8o0D;;MCgBvp0D,UAAU,GAAA,MAAA;;;;;AAOrB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;IACsB,GAAG,GAAW,EAAE;AAEzC;;AAEG;IACsB,WAAW,GAAW,MAAM;AAErD;;AAEG;IACsB,QAAQ,GAAgC,MAAM;AAEvE;;AAEG;IAC+B,SAAS,GAAY,KAAK;AAE5D;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM;AACxC,YAAA,gBAAgB,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;AAC5C,YAAA,eAAe,EAAE,IAAI,CAAC,QAAQ,KAAK,OAAO;YAC1C,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB;;AAGH;;;AAGG;IACK,kBAAkB,GAAA;QACxB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB;;AAGH;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAA,EACpC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAA,CAAI,CACzC,CACD;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-social.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-social/footer-social.scss?tag=br-footer-social&encapsulation=shadow","../../packages/webcomponents/src/components/footer-social/footer-social.tsx"],"sourcesContent":[".spacing-icons {\n margin-right: var(--spacing-scale-2x);\n text-decoration: none;\n}\n\nbr-button {\n display: inline-block;\n}\n","import { Component, Element, h, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-social` representa os ícones de redes sociais no rodapé do site, de acordo com a documentação de design do GovBR.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n */\n@Component({\n tag: 'br-footer-social',\n styleUrl: 'footer-social.scss',\n shadow: true,\n})\nexport class FooterSocial {\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: HTMLBrFooterSocialElement\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 = Helpers.generateUniqueId()\n\n /**\n * Ícone da rede social\n * */\n @Prop({ reflect: true }) readonly icon: string\n\n /**\n * Descrição do ícone da rede social\n * */\n @Prop({ reflect: true }) readonly description: string\n\n /**\n * URL da rede social\n */\n @Prop({ reflect: true }) readonly href: string = null\n\n /**\n * Monta o objeto com as classes CSS do componente.\n * @returns Objeto com as classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-social': true,\n 'spacing-icons': true,\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <br-button\n role=\"link\"\n class={this.getCssClassMap()}\n id={this.customId}\n emphasis=\"tertiary\"\n shape=\"circle\"\n aria-label={this.description}\n >\n <a href={this.href} tabindex=\"-1\">\n <br-icon icon-name={`fa-brands:${this.icon}`} aria-hidden=\"true\"></br-icon>\n </a>\n </br-button>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,eAAe,GAAG,++zDAA++zD;;MCc1/zD,YAAY,GAAA,MAAA;;;;;AAOvB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEK;AAC6B,IAAA,IAAI;AAEtC;;AAEK;AAC6B,IAAA,WAAW;AAE7C;;AAEG;IAC+B,IAAI,GAAW,IAAI;AAErD;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,eAAe,EAAE,IAAI;SACtB;;AAGH;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,QAAQ,EAAC,UAAU,EACnB,KAAK,EAAC,QAAQ,EACF,YAAA,EAAA,IAAI,CAAC,WAAW,EAAA,EAE5B,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAC,IAAI,EAAA,EAC/B,CAAoB,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAA,CAAA,UAAA,EAAa,IAAI,CAAC,IAAI,EAAE,EAAc,aAAA,EAAA,MAAM,EAAW,CAAA,CACzE,CACM;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer.scss?tag=br-footer&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/divider/divider\";\n@import \"~@govbr-ds/core/src/partial/scss/configs/grid\";\n@import \"~@govbr-ds/core/src/partial/scss/utilities/flexbox\";\n@import \"~@govbr-ds/core/src/components/footer/footer\";\n@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-social;\n\n:host {\n display: block;\n width: 100%;\n}\n\n.br-footer {\n display: flex;\n flex-flow: column nowrap;\n\n &.inverted {\n --background: var(--background-light);\n\n @include light-mode;\n }\n}\n\n.site-map {\n display: flex;\n flex-flow: column nowrap;\n padding: var(--footer-padding-bottom);\n}\n\n.social-and-partners {\n display: none;\n padding: var(--footer-padding-bottom);\n}\n\n.social-newtwork,\n.partners {\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-start;\n}\n\n.social-title {\n flex-basis: 100%;\n}\n\n@media (width >= 576px) {\n .social-and-partners {\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n align-items: flex-end;\n }\n}\n\n@media (width >= 992px) {\n .site-map {\n flex-flow: row wrap;\n justify-content: flex-start;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O componente `br-footer` representa o rodapé do site, de acordo com a documentação de design do GovBR.\n * Ele é composto por vários subcomponentes, como [`br-footer-category`](/docs/components/footer-category), [`br-footer-item`](/docs/components/footer-item), [`br-footer-social`](/docs/components/footer-social), [`br-footer-legal`](/docs/components/footer-legal) e [`br-logo`](/docs/components/footer-logo).\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/footer?tab=designer).\n *\n * @slot logo - Área destinada ao logo do rodapé. Utilize o componente `br-logo` para adicionar o logo.\n * @slot default - Área destinada ao mapa do site. Utilize o componente `br-footer-category` juntamente com o componente `br-footer-item` para adicionar itens.\n * @slot social-network - Área destinada às redes sociais. Utilize o componente `br-footer-social` para adicionar redes sociais.\n * @slot partner-logo - Área destinada aos logos de parceiros. Utilize o componente `br-logo` para adicionar os logos.\n * @slot legal - Área destinada às informações legais. Utilize o componente `br-footer-legal` para adicionar informações legais.\n */\n@Component({\n tag: 'br-footer',\n styleUrl: 'footer.scss',\n shadow: true,\n})\nexport class Footer {\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: HTMLBrFooterElement\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 = Helpers.generateUniqueId()\n\n /**\n * Indica o tema do rodapé.\n */\n @Prop({ reflect: true }) theme: 'dark' | 'light' = 'dark'\n\n /**\n * Texto de descrição das redes sociais.\n */\n @Prop({ reflect: true }) socialNetworkTitle: string = 'Redes Sociais'\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer': true,\n inverted: this.theme === 'light',\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <div class=\"container-lg\">\n <slot name=\"logo\"></slot>\n <div class=\"site-map\">\n <slot></slot>\n </div>\n <div class=\"social-and-partners\">\n <div class=\"social-network\">\n <p class=\"social-network-title\">{this.socialNetworkTitle}</p>\n <slot name=\"social-network\"></slot>\n </div>\n <div class=\"partners text-right\">\n <slot name=\"partner-logo\"></slot>\n </div>\n </div>\n <slot name=\"legal\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,SAAS,GAAG,uojEAAuojE;;MCqB5ojE,MAAM,GAAA,MAAA;;;;;AAOjB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;IACsB,KAAK,GAAqB,MAAM;AAEzD;;AAEG;IACsB,kBAAkB,GAAW,eAAe;IAE7D,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;SACjC;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvB,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,MAAM,EAAQ,CAAA,EACzB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,UAAU,EAAA,EACnB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACzB,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,sBAAsB,IAAE,IAAI,CAAC,kBAAkB,CAAK,EAC7D,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,gBAAgB,EAAA,CAAQ,CAC/B,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,cAAc,EAAA,CAAQ,CAC7B,CACF,EACN,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,OAAO,EAAA,CAAQ,CACtB,CACF,CACD;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-input.br-radio.entry.esm.js","sources":["../../packages/webcomponents/src/components/input/input.scss?tag=br-input&encapsulation=shadow","../../packages/webcomponents/src/components/input/input.tsx","../../packages/webcomponents/src/components/radio/radio.scss?tag=br-radio&encapsulation=shadow","../../packages/webcomponents/src/components/radio/radio.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/input/input\";\n\n:host {\n display: block;\n\n .br-input .input-icon {\n margin: 0 var(--spacing-scale-2x);\n }\n\n .br-input .input-icon + input {\n padding-left: var(--spacing-scale-6x);\n }\n}\n\n.br-input br-button {\n float: right;\n margin-right: var(--input-button-margin);\n margin-top: calc((var(--input-size) + var(--spacing-scale-half)) * -1);\n padding: 0;\n position: relative;\n}\n\n.button-transform {\n transform: translateY(calc((var(--input-size) - 32px) * 0.5));\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n * @slot feedback - Mensagem de feedback como resposta específica a uma interação do usuário com o input. Pode ser feedback de erro, aviso, sucesso ou informação.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\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: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) readonly type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) readonly autocomplete: 'on' | 'off'\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\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 * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) readonly isHighlight: boolean = false\n\n /**\n * Define o estado do input\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 }) readonly state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: 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-input-${inputId++}`\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) readonly name: 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 * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) readonly required: boolean = false\n\n /**\n * Valor exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) readonly helpText: string\n\n /**\n * Controla a correção automática do texto.\n */\n @Prop({ reflect: true }) readonly autocorrect: 'off' | 'on' = 'off'\n\n /**\n * Define o valor mínimo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly min: number\n\n /**\n * Define o valor máximo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly max: number\n\n /**\n * Define o comprimento mínimo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly minlength: number\n\n /**\n * Define o comprimento máximo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly maxlength: number\n\n /**\n * Se verdadeiro, permite a seleção de múltiplos arquivos.\n */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * Define o padrão de entrada para validação.\n */\n @Prop({ reflect: true }) readonly pattern: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly step: number\n\n @State() isPasswordVisible: boolean = false\n\n @State() internalState: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n @State() hasFeedbackSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.hasFeedbackSlot = this.hasSlotContent('feedback')\n this.internalState = this.state\n\n if (this.hasFeedbackSlot) {\n this.initializeStateWithFeedback()\n }\n }\n\n componentDidLoad() {\n if (this.hasFeedbackSlot) {\n this.setupSlotFeedbackListener()\n }\n }\n\n private initializeStateWithFeedback() {\n const initialMessageElement = this.el.querySelector('br-message')\n\n if (initialMessageElement) {\n const messageState = initialMessageElement.getAttribute('state')\n this.internalState = (messageState as 'info' | 'warning' | 'danger' | 'success') || this.state\n } else {\n this.internalState = this.state\n }\n }\n\n private setupSlotFeedbackListener() {\n const slot = this.el.shadowRoot?.querySelector('slot[name=\"feedback\"]')\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.syncStateWithSlotFeedback()\n })\n }\n }\n\n private syncStateWithSlotFeedback() {\n const messageElement = this.el.querySelector('br-message')\n\n if (messageElement) {\n this.internalState = messageElement.getAttribute('state') as 'info' | 'warning' | 'danger' | 'success'\n } else {\n this.internalState = this.state\n }\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.internalState === 'success',\n danger: this.internalState === 'danger',\n info: this.internalState === 'info',\n warning: this.internalState === 'warning',\n }\n }\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange: EventEmitter<string>\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button class=\"button-transform\" shape=\"circle\" density=\"small\" aria-label=\"botão de ação do ícone\">\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return <div class=\"input-content\">{this.renderInputWithIcon()}</div>\n } else {\n return <div class=\"input-content\">{this.renderInputWithoutIcon()}</div>\n }\n }\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n )\n }\n\n private readonly renderInputWithoutIcon = () => {\n return [this.renderInput(), this.renderButton(), this.renderHelpText()]\n }\n\n private renderFeedback() {\n if (this.hasFeedbackSlot) {\n return <slot name=\"feedback\"></slot>\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? this.renderInlineInputContent() : this.renderInputContent()}\n\n {this.renderFeedback()}\n </div>\n </Host>\n )\n }\n}\n\nlet inputId = 0\n","@import \"~@govbr-ds/core/src/components/radio/radio\";\n@include radio-checked;\n\n:host {\n display: block;\n\n .br-radio.hidden-label {\n label {\n padding-left: calc(var(--checkbox-size) + var(--surface-width-md) * 2);\n text-indent: -10000px;\n white-space: nowrap;\n width: 0;\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } 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/radio?tab=designer).\n *\n * @slot default - O texto descritivo pode ser passado por propriedade (label) ou por slot.\n */\n\n@Component({\n tag: 'br-radio',\n styleUrl: 'radio.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Radio {\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: HTMLBrRadioElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o estado de seleção do radio.\n * Se definido como verdadeiro, o radio estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: boolean = false\n\n /**\n * Desativa o radio, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Indica a validade do radio.\n * Valores possíveis:\n * - 'valid': O radio é considerado válido.\n * - 'invalid': O radio é considerado inválido.\n * Se não for especificado, o valor padrão é `null`, indicando que a validade não foi definida.\n */\n @Prop({ reflect: true }) readonly state: 'valid' | 'invalid'\n\n /**\n * Define se o label associado ao radio deve ser oculto.\n * Se definido como verdadeiro, o texto do label será oculto, mas o radio ainda estará visível e funcional.\n */\n @Prop({ reflect: true, attribute: 'has-hidden-label' }) readonly hasHiddenLabel: 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-radio-${radioId++}`\n\n /**\n * Define o nome do radio, que é utilizado para agrupar radios em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n\n @Prop({ reflect: true }) readonly name!: string\n\n /**\n * Texto descritivo exibido à direita do radio.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Define o valor associado ao radio quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o radio está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o radio está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event({ bubbles: true, composed: true }) checkedChange: EventEmitter<boolean>\n\n @Listen('checkedChange', { target: 'window' })\n handleCheckedChange(event: CustomEvent) {\n if (\n (event.target as HTMLBrRadioElement).customId !== this.customId &&\n (event.target as HTMLBrRadioElement).name === this.name\n ) {\n this.checked = false\n }\n }\n\n /**\n * Navega e seleciona o próximo/anterior rádio habilitado no grupo via teclas de seta.\n * Ativado por 'keydown', move a seleção entre rádios do mesmo 'name'\n * usando as setas, partindo do rádio atualmente checado.\n * @param {KeyboardEvent} event O evento de teclado.\n * @listens keydown\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled || !this.checked) return\n\n const isArrowKey = ['ArrowRight', 'ArrowDown', 'ArrowLeft', 'ArrowUp'].includes(event.key)\n if (!isArrowKey) return\n\n event.preventDefault()\n\n const radios = Array.from(document.querySelectorAll<HTMLBrRadioElement>('br-radio')).filter(\n (el: HTMLBrRadioElement) => el.name === this.name && !el.disabled\n )\n\n const currentIndex = radios.findIndex((radio: HTMLBrRadioElement) => radio.customId === this.customId)\n if (currentIndex === -1) return\n\n let nextIndex = currentIndex\n if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {\n nextIndex = (currentIndex + 1) % radios.length\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {\n nextIndex = (currentIndex - 1 + radios.length) % radios.length\n }\n\n const nextRadio: HTMLBrRadioElement | undefined = radios[nextIndex]\n nextRadio?.toggleChecked?.()\n nextRadio?.shadowRoot?.querySelector('input')?.focus()\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-radio': true,\n valid: this.state === 'valid',\n invalid: this.state === 'invalid',\n disabled: this.disabled,\n 'hidden-label': this.hasHiddenLabel,\n }\n }\n\n /**\n * Handler para o event `click`\n * @param event Objeto Event\n */\n private readonly onClick = (event: MouseEvent) => {\n event.stopPropagation()\n this.checked = (event.target as HTMLInputElement).checked\n }\n\n /**\n * Handler para o evento `change`\n */\n private readonly onChange = () => {\n this.checkedChange.emit(this.checked)\n }\n\n render() {\n return (\n <Host aria-disabled={this.disabled ? 'true' : null}>\n <div class={this.getCssClassMap()}>\n <input\n part=\"radio-input\"\n aria-label={this.hasHiddenLabel && this.label ? this.label : null}\n type=\"radio\"\n id={this.customId}\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n value={this.value}\n onClick={this.onClick}\n onChange={this.onChange}\n />\n <label part=\"radio-label\" htmlFor={this.customId}>\n <slot>{this.label}</slot>\n </label>\n </div>\n </Host>\n )\n }\n}\n\nlet radioId = 0\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n.br-item:focus {\n cursor: auto;\n outline-color: var(--focus);\n outline-offset: var(--focus-offset);\n outline-style: var(--focus-style);\n outline-width: var(--focus-width);\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\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: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: 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-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n // Referência ao elemento interno que deve receber o foco\n private focusableElement?: HTMLElement\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n // Se o componente estiver desabilitado, impede a ação e sai imediatamente.\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n const clickedElement = event.target as HTMLElement\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n // Armazena o estado anterior para emitir o evento apenas se houver mudança.\n const previousSelectedValue = this.selectedValue\n this.selectedValue = !this.selectedValue\n\n if (previousSelectedValue !== this.selectedValue) {\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n // Atualiza o estado dos checkboxes internos.\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (this.disabled) {\n console.log(`[br-item ${this.customId}] Item desativado, ignorando tecla pressionada(keydown).`)\n return\n }\n\n // Use closest para encontrar o br-list ancestral, mais robusto que parentElement\n const listContainer = this.el.closest('br-list')\n if (listContainer === null || listContainer === undefined) {\n console.error(`[br-item ${this.customId}] Não foi possível encontrar o container pai <br-list>.`)\n return\n }\n\n // Busca itens diretamente dentro do listContainer encontrado\n const listItems = Array.from(listContainer.querySelectorAll('br-item:not([disabled])')) as HTMLBrItemElement[]\n if (listItems.length === 0) {\n console.warn(`[br-item ${this.customId}] Nenhum item navegável encontrado no container da lista.`)\n return\n }\n\n // Encontra o índice do item atual na lista de itens navegáveis\n const currentIndex = listItems.indexOf(this.el)\n\n if (currentIndex === -1) {\n console.error(`[br-item ${this.customId}] Item atual não encontrado nos itens navegáveis.`)\n return // O item atual não está na lista (talvez desabilitado ou erro)\n }\n\n let targetItem: HTMLBrItemElement | null = null\n\n switch (event.key) {\n case 'ArrowDown': // Seta para baixo\n event.preventDefault()\n if (currentIndex < listItems.length - 1) {\n targetItem = listItems[currentIndex + 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowDown: Último item já selecionado.`)\n }\n break\n\n case 'ArrowUp': // Seta para cima\n event.preventDefault()\n if (currentIndex > 0) {\n targetItem = listItems[currentIndex - 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowUp: Usuário já está no primeiro item da lista.`)\n }\n break\n\n case 'Enter':\n case ' ': // Barra de espaço\n event.preventDefault()\n this.handleClick(new MouseEvent('click'))\n break\n\n case 'Home':\n event.preventDefault()\n targetItem = listItems[0]\n break\n\n case 'End':\n event.preventDefault()\n targetItem = listItems[listItems.length - 1]\n break\n\n default:\n return // Ignorar outras teclas\n }\n\n if (targetItem && targetItem !== this.el) {\n // Verifica se o item alvo é diferente do atual\n if ('setFocus' in targetItem) {\n // Se o item alvo tiver o método setFocus, chama-o\n ;(targetItem as { setFocus: () => void }).setFocus()\n }\n // Caso contrário, apenas defina o foco no elemento alvo\n targetItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n this.focusableElement?.focus()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType\n class={classList}\n {...attributes}\n onClick={this.handleClick}\n id={this.customId}\n tabIndex={this.disabled ? -1 : this.isInteractive ? 0 : -1}\n ref={(el) => (this.focusableElement = el as HTMLElement)}\n onKeyDown={(event) => this.handleKeydown(event)}\n onMouseDown={(e) => e.preventDefault()}\n >\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-loading.entry.esm.js","sources":["../../packages/webcomponents/src/components/loading/loading.scss?tag=br-loading&encapsulation=shadow","../../packages/webcomponents/src/components/loading/loading.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/loading/loading\";\n\n:host {\n display: block;\n\n .loading-progress-alignment {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/loading?tab=designer).\n */\n@Component({\n tag: 'br-loading',\n styleUrl: 'loading.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Loading {\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: HTMLBrLoadingElement\n\n /**\n * Determina o tipo de indicador a ser exibido:\n * - Se verdadeiro, exibirá uma barra de progresso com a porcentagem de progresso.\n * - Se falso, exibirá um indicador de carregamento indeterminado.\n */\n @Prop({ reflect: true }) readonly isProgress: 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-loading-${loadingId++}`\n\n /**\n * Define a porcentagem de progresso a ser exibida na barra de progresso.\n * Deve ser um valor numérico entre 0 e 100. Ignorado se `isProgress` estiver definido como falso.\n */\n @Prop({ reflect: true }) readonly progressPercent: number\n\n /**\n * Se verdadeiro, ajusta o tamanho do indicador de carregamento para o tamanho médio.\n */\n @Prop({ reflect: true }) readonly isMedium: boolean = false\n\n /**\n * Texto a ser exibido abaixo do indicador de carregamento.\n * Pode ser usado para fornecer informações adicionais ou descritivas sobre o estado do carregamento.\n */\n @Prop({ reflect: true }) readonly label: string\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-loading': true,\n medium: this.isMedium,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isProgress ? (\n <div\n class={this.getCssClassMap()}\n role=\"progressbar\"\n data-progress={this.progressPercent}\n aria-label=\"Carregando exemplo com porcentagem\"\n aria-valuemin=\"0\"\n aria-valuenow={this.progressPercent}\n aria-valuemax=\"100\"\n id={this.customId}\n >\n <div class=\"br-loading-mask full\">\n <div class=\"br-loading-fill\"></div>\n </div>\n <div class=\"br-loading-mask\">\n <div class=\"br-loading-fill\"></div>\n </div>\n </div>\n ) : (\n <div class=\"loading-progress-alignment\">\n <div\n id={this.customId}\n class={this.getCssClassMap()}\n role=\"progressbar\"\n aria-label=\"Carregando exemplo indeterminado pequeno\"\n ></div>\n <span class=\"rotulo\">{this.label}</span>\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet loadingId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,q9vEAAq9vE;;MCY39vE,OAAO,GAAA,MAAA;;;;;AAOlB;;;;AAIG;IAC+B,UAAU,GAAY,KAAK;AAE7D;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,CAAA,WAAA,EAAc,SAAS,EAAE,EAAE;AAEhF;;;AAGG;AAC+B,IAAA,eAAe;AAEjD;;AAEG;IAC+B,QAAQ,GAAY,KAAK;AAE3D;;;AAGG;AAC+B,IAAA,KAAK;IAE/B,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,uDACF,IAAI,CAAC,UAAU,IACd,WACE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,mBACH,IAAI,CAAC,eAAe,EACxB,YAAA,EAAA,oCAAoC,mBACjC,GAAG,EAAA,eAAA,EACF,IAAI,CAAC,eAAe,mBACrB,KAAK,EACnB,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAA,EAEjB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,CAAO,CAC/B,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,CAAO,CAC/B,CACF,KAEN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4BAA4B,EAAA,EACrC,CAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,EAAA,YAAA,EACP,0CAA0C,EAChD,CAAA,EACP,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,QAAQ,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CACpC,CACP,CACI;;;;AAKb,IAAI,SAAS,GAAG,CAAC;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-message.entry.esm.js","sources":["../../packages/webcomponents/src/components/message/message.scss?tag=br-message&encapsulation=shadow","../../packages/webcomponents/src/components/message/message.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/message/message\";\n\n:host {\n display: block;\n\n .icon-space {\n margin-right: var(--spacing-scale-half);\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/message?tab=designer).\n *\n * @slot default - Utilizado para inserir qualquer conteúdo que será exibido no corpo da mensagem.\n */\n@Component({\n tag: 'br-message',\n styleUrl: 'message.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Message {\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: HTMLBrMessageElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o título da mensagem, que é exibido no início, acima da mensagem principal.\n * Este título serve para destacar a mensagem textual. Não é aplicável para mensagens do tipo feedback.\n */\n @Prop({ reflect: true }) readonly messageTitle: 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-message-${messageId++}`\n\n /**\n * Define o texto da mensagem que será exibido.\n * Este é o conteúdo principal da mensagem. A propriedade `message` é obrigatória e deve ser fornecida para que a mensagem apareça.\n */\n @Prop({ reflect: true }) readonly message!: string\n\n /**\n * Se definido como verdadeiro, o título da mensagem será exibido na mesma linha que a mensagem principal.\n * Isso pode ser útil para criar um layout onde o título e a mensagem estão alinhados horizontalmente.\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Se definido como verdadeiro, um botão de fechar será exibido para permitir que o usuário feche a mensagem.\n * O fechamento emitirá o evento `brDidClose`, mas não removerá automaticamente o componente do DOM, a menos que a propriedade `autoRemove` também esteja definida como `true`.\n * Este recurso não está disponível para mensagens do tipo feedback.\n */\n @Prop({ reflect: true }) readonly isClosable: boolean = false\n\n /**\n * Controla o comportamento do fechamento do componente quando `isClosable` é verdadeiro.\n * - Se definido como `true`, o componente será automaticamente removido do DOM ao clicar no botão de fechar.\n * - Se definido como `false`, o componente permanecerá no DOM e apenas emitirá o evento `brDidClose`.\n *\n * Esta propriedade não tem efeito se `isClosable` for `false`.\n * O valor padrão é `false`.\n */\n @Prop({ reflect: true }) autoRemove: boolean = false\n\n /**\n * Se definido como verdadeiro, um ícone associado à mensagem será exibido.\n * Use esta propriedade para mostrar ou ocultar o ícone da mensagem conforme necessário.\n */\n @Prop({ reflect: true }) readonly showIcon: boolean = false\n\n /**\n * Define se a mensagem é do tipo feedback, geralmente usada para fornecer contexto adicional sobre ações do usuário.\n * Exemplos incluem mensagens de validação em campos de formulário. Não disponível para mensagens que não sejam de feedback.\n */\n @Prop({ reflect: true }) readonly isFeedback: boolean = false\n\n /**\n * Define o estado do message.\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 }) readonly state: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n /** Evento emitido quando o usuário fecha a mensagem, se closable for true. */\n @Event() brDidClose: EventEmitter\n\n private readonly dismissHandler = () => {\n this.brDidClose.emit()\n if (this.autoRemove) {\n this.el.remove()\n }\n }\n\n private checkIconState() {\n const iconMap = {\n success: 'fa-solid:check-circle',\n warning: 'fa-solid:exclamation-triangle',\n danger: 'fa-solid:times-circle',\n info: 'fa-solid:info-circle',\n }\n return iconMap[this.state] || 'check-circle' // Valor padrão se não encontrado\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-message': true,\n [this.state]: true,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isFeedback ? (\n <span class={`feedback ${this.state}`} role=\"alert\" id={this.customId}>\n {this.showIcon ? <br-icon class=\"icon-space\" icon-name={this.checkIconState()}></br-icon> : null}\n {this.message && this.message.length > 0 ? this.message : <slot></slot>}\n </span>\n ) : (\n <div class={this.getCssClassMap()} role=\"alert\" id={this.customId}>\n {this.showIcon && (\n <div class=\"icon\">\n <br-icon icon-name={this.checkIconState()} height=\"20\" aria-hidden=\"true\"></br-icon>\n </div>\n )}\n <div class=\"content\" role=\"alert\">\n {this.message && this.message.length > 0 ? (\n <div>\n {this.messageTitle && <span class=\"message-title\">{this.messageTitle}</span>}\n {this.messageTitle && !this.isInline && <br />}\n {this.message && <span class=\"message-body\">{this.message}</span>}\n </div>\n ) : (\n <div>\n {this.messageTitle && this.isInline && <strong>{this.messageTitle}</strong>}\n {this.messageTitle && !this.isInline && <br />}\n <slot></slot>\n </div>\n )}\n </div>\n {this.isClosable && !this.isFeedback && (\n <div class=\"close\">\n <br-button shape=\"circle\" type=\"button\" aria-label=\"Fechar a mensagem\" onClick={this.dismissHandler}>\n <br-icon icon-name=\"fa-solid:times\" aria-hidden=\"true\"></br-icon>\n </br-button>\n </div>\n )}\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet messageId = 0\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-scrim.entry.esm.js","sources":["../../packages/webcomponents/src/components/scrim/scrim.scss?tag=br-scrim&encapsulation=shadow","../../packages/webcomponents/src/components/scrim/scrim.tsx"],"sourcesContent":[":host {\n --br-scrim-opacity: 1;\n\n .br-scrim {\n visibility: hidden;\n transition: visibility 0.3s ease;\n z-index: var(--z-index-layer-4);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n }\n\n .br-scrim.mode-fullscreen {\n position: fixed;\n inset: 0;\n }\n\n .br-scrim.mode-parent {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n }\n\n .br-scrim.opened {\n visibility: visible;\n pointer-events: auto;\n }\n\n .mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--surface-overlay-scrim);\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: auto;\n }\n\n .br-scrim.opened .mask {\n opacity: var(--br-scrim-opacity);\n }\n\n .content {\n position: relative;\n outline: none;\n pointer-events: auto;\n opacity: 0;\n transform: scale(0.9);\n transition:\n opacity 0.3s ease,\n transform 0.3s ease;\n background: transparent;\n padding: 0;\n margin: 0;\n border: none;\n box-shadow: none;\n overflow: visible;\n contain: none;\n display: inline-block;\n width: fit-content;\n height: fit-content;\n z-index: calc(var(--z-index-layer-4) + 1);\n &:focus {\n outline: var(--focus-outline);\n outline-offset: var(--focus-offset);\n box-shadow: var(--focus-shadow);\n }\n }\n\n .br-scrim.opened .content {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n }\n\n .br-scrim.position-top .content {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-bottom .content {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-left .content {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-right .content {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-center .content {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .content ::slotted(*) {\n opacity: 1 !important;\n filter: none;\n }\n\n /* Estilos responsivos */\n @media (max-width: 768px) {\n .content {\n max-width: 95%;\n max-height: 95%;\n width: auto;\n }\n\n .br-scrim.position-top .content,\n .br-scrim.position-bottom .content {\n width: 100%;\n max-width: 100%;\n border-radius: 0;\n }\n }\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/scrim?tab=designer).\n *\n * @slot default - Elemento que será exibido junto com o Scrim, devendo ser fornecido através do slot. Esse elemento representa o conteúdo principal a ser destacado sobre o fundo escurecido.\n * @slot activator - Elemento que, quando clicado, ativa/desativa o scrim. Tem prioridade sobre a propriedade 'activator'.\n */\n@Component({\n tag: 'br-scrim',\n styleUrl: 'scrim.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Scrim {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el: HTMLBrScrimElement\n\n @AttachInternals() elementInternals: ElementInternals\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-scrim-${ScrimId++}`\n\n /**\n * Ativa/desativa o scrim\n */\n @Prop({ reflect: true }) isOpen: boolean = false\n\n /**\n * Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim\n */\n @Prop() positionContent: 'top' | 'center' | 'right' | 'left' | 'bottom'\n\n /**\n * Desativa o fechamento do scrim ao ser clicado\n */\n @Prop() disableCloseOnClick: boolean = false\n\n /**\n * Define o valor de z-index do scrim\n */\n @Prop() zIndex: number | null = null\n\n /**\n * Define um valor CSS personalizado para o background do scrim\n */\n @Prop() customBackground: string | null = null\n\n /**\n * Define a opacidade personalizada do scrim\n */\n @Prop() customOpacity: number | null = null\n\n /**\n * Define o modo de exibição do scrim:\n * - 'fullscreen': Ocupa toda a tela (position: fixed).\n * - 'parent': Ocupa apenas o elemento pai (position: absolute).\n * O elemento pai deve ter `position: relative` ou outro valor de posicionamento diferente de `static`.\n */\n @Prop() displayMode: 'fullscreen' | 'parent' = 'fullscreen'\n\n /**\n * Define a estratégia de manipulação de rolagem quando scrim está aberto\n * - 'block': Impede a rolagem completamente\n * - 'close': Fecha o scrim quando ocorre rolagem\n */\n @Prop() scrollStrategy: 'block' | 'close'\n\n /**\n * Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim.\n */\n @Prop() scrollThreshold: number = 50\n\n /**\n * Define o seletor para o elemento activator.\n * Pode ser:\n * - Um seletor CSS (ex: '.button-class', '#button-id')\n * - A string 'parent' para usar o elemento pai como activator\n * Nota: O slot 'activator' tem prioridade sobre esta propriedade.\n */\n @Prop() activator: string | null = null\n\n /** Indica que o scrim foi aberto. */\n @Event() brScrimOpen: EventEmitter\n\n /** Indica que o scrim foi fechado */\n @Event() brScrimClose: EventEmitter\n\n @State() isActive: boolean = false\n @State() hasActivatorSlot: boolean = false\n\n // ======================================================================\n // PROPRIEDADES PRIVADAS E VARIÁVEIS INTERNAS\n // ======================================================================\n private contentRef: HTMLDivElement | null = null\n private activatorElement: HTMLElement | null = null\n private scrollOffset: number = 0\n private lastScrollTop: number = 0\n private previouslyFocusedElement: HTMLElement | null | undefined = null\n\n private static readonly FOCUSABLE_SELECTORS = [\n 'a[href]:not([disabled])',\n 'button:not([disabled])',\n 'br-button:not([disabled])',\n 'input:not([disabled])',\n 'br-input:not([disabled])',\n 'select:not([disabled])',\n 'br-select:not([disabled])',\n 'textarea:not([disabled])',\n 'br-textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',')\n\n // ======================================================================\n // LIFECYCLE HOOKS E WATCHERS\n // ======================================================================\n @Watch('isOpen')\n handleOpenChange(newValue: boolean) {\n this.isActive = newValue\n this.updateStyles()\n\n if (this.isActive) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.applyScrollStrategy()\n setTimeout(() => {\n this.focusFirstElement()\n }, 100)\n this.brScrimOpen.emit()\n } else {\n this.resetScrolling()\n this.restoreFocus()\n this.brScrimClose.emit()\n }\n }\n\n @Watch('zIndex')\n @Watch('customBackground')\n @Watch('customOpacity')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--z-index-layer-4', `${this.zIndex}`)\n }\n if (this.customBackground !== null) {\n this.el.style.setProperty('--surface-overlay-scrim', this.customBackground)\n }\n if (this.customOpacity !== null) {\n this.el.style.setProperty('--br-scrim-opacity', `${this.customOpacity}`)\n }\n }\n\n @Watch('activator')\n handleActivatorChange() {\n this.removeActivatorClickListener()\n this.setupActivator()\n }\n\n componentWillLoad() {\n this.hasActivatorSlot = this.checkActivatorSlot('activator')\n }\n\n componentDidLoad() {\n this.isActive = this.isOpen\n this.updateStyles()\n if (this.isActive) {\n this.applyScrollStrategy()\n this.focusFirstElement()\n }\n this.setupActivator()\n this.setupActivatorSlotClick()\n this.contentRef.addEventListener('keydown', this.handleKeyDown)\n }\n\n connectedCallback() {\n if (this.scrollStrategy === 'close') {\n window.addEventListener('scroll', this.handleScrollClose)\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('scroll', this.handleScrollClose)\n this.contentRef.removeEventListener('keydown', this.handleKeyDown)\n this.removeActivatorClickListener()\n this.cleanupActivatorSlotClick()\n }\n\n // ======================================================================\n // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)\n // ======================================================================\n private checkActivatorSlot(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private setupActivatorSlotClick() {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (slotEl === null || slotEl === undefined) return\n\n const assignedElements = slotEl.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const el = assignedElements[0] as HTMLElement\n el.addEventListener('click', this.handleActivatorClick)\n } else if (assignedElements.length > 1) {\n console.warn('br-scrim: Slot \"activator\" deve conter apenas um elemento para aplicar o onClick automaticamente.')\n }\n }\n\n private setupActivator() {\n this.removeActivatorClickListener()\n this.activatorElement = null\n\n if (this.hasActivatorSlot || this.activator == null || this.activator === '') {\n return\n }\n\n if (this.activator === 'parent') {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.activatorElement = parentElement\n }\n } else {\n try {\n const element = document.querySelector(this.activator)\n if (element instanceof HTMLElement) {\n this.activatorElement = element\n }\n } catch {\n console.warn(`br-scrim: Seletor activator inválido: ${this.activator}`)\n }\n }\n\n this.addActivatorClickListener()\n }\n\n private handleActivatorClick = () => {\n this.toggle()\n }\n\n private addActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.addEventListener('click', this.handleActivatorClick)\n }\n\n private removeActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.removeEventListener('click', this.handleActivatorClick)\n }\n\n private cleanupActivatorSlotClick() {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n const assignedElements = slotEl?.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n assignedElements[0].removeEventListener('click', this.handleActivatorClick)\n }\n }\n\n // ======================================================================\n // ESTRATÉGIAS DE ROLAGEM (SCROLL)\n // ======================================================================\n private applyScrollStrategy() {\n if (this.scrollStrategy === 'block') {\n this.enableScrollBlock()\n } else if (this.scrollStrategy === 'close') {\n this.enableScrollWatcher()\n }\n }\n\n private enableScrollBlock() {\n this.scrollOffset = window.scrollY\n document.body.style.setProperty('position', 'fixed')\n document.body.style.setProperty('top', `-${this.scrollOffset}px`)\n document.body.style.setProperty('left', '0')\n document.body.style.setProperty('right', '0')\n document.body.style.setProperty('width', '100%')\n document.documentElement.style.setProperty('overflow', 'hidden')\n\n window.addEventListener('scroll', this.handleBlockScroll)\n }\n\n private enableScrollWatcher() {\n window.addEventListener('scroll', this.handleScrollClose)\n }\n\n private handleBlockScroll = (e: Event) => {\n if (this.scrollStrategy === 'block' && this.isActive) {\n window.scrollTo(0, this.scrollOffset)\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n private resetScrolling() {\n if (this.scrollStrategy === 'block') {\n document.body.style.removeProperty('position')\n document.body.style.removeProperty('top')\n document.body.style.removeProperty('left')\n document.body.style.removeProperty('right')\n document.body.style.removeProperty('width')\n document.documentElement.style.removeProperty('overflow')\n window.removeEventListener('scroll', this.handleBlockScroll)\n window.scrollTo(0, this.scrollOffset)\n }\n window.removeEventListener('scroll', this.handleScrollClose)\n }\n\n private handleScrollClose = () => {\n if (this.scrollStrategy === 'close' && this.isActive) {\n const currentScroll = window.scrollY\n if (Math.abs(currentScroll - this.lastScrollTop) > this.scrollThreshold) {\n this.handleOpenChange(false)\n }\n this.lastScrollTop = currentScroll\n }\n }\n\n // ======================================================================\n // ACESSIBILIDADE E GERENCIAMENTO DE FOCO\n // ======================================================================\n private focusFirstElement() {\n if (this.contentRef == null) return\n\n this.contentRef.setAttribute('tabindex', '-1')\n this.contentRef.focus()\n\n const focusableElements = this.getFocusableElements()\n\n if (focusableElements.length > 0) {\n const firstElement = focusableElements[0]\n if (firstElement !== null && firstElement !== undefined) {\n firstElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })\n firstElement.focus({ preventScroll: true })\n }\n }\n }\n\n private restoreFocus() {\n let targetElement: HTMLElement | null = null\n\n if (this.previouslyFocusedElement instanceof HTMLElement && this.previouslyFocusedElement.isConnected) {\n targetElement = this.previouslyFocusedElement\n } else if (this.activatorElement instanceof HTMLElement) {\n targetElement = this.activatorElement\n } else {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (this.hasActivatorSlot) {\n const assignedElements = slotEl.assignedElements?.() ?? []\n if (assignedElements.length > 0 && assignedElements[0] instanceof HTMLElement) {\n targetElement = assignedElements[0] as HTMLElement\n }\n }\n }\n\n if (targetElement !== null && targetElement !== undefined) {\n setTimeout(() => {\n try {\n targetElement?.focus()\n } catch (error) {\n console.warn('br-scrim: Erro ao restaurar foco:', error)\n }\n }, 100)\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (this.contentRef == null) return []\n\n const defaultSlot = this.contentRef.querySelector('slot:not([name])') as HTMLSlotElement\n if (defaultSlot === null || defaultSlot === undefined) return []\n\n const assignedElements = defaultSlot.assignedElements({ flatten: true })\n const focusableElements: HTMLElement[] = []\n\n assignedElements.forEach((el) => {\n if (!(el instanceof HTMLElement)) return\n\n if (el.matches(Scrim.FOCUSABLE_SELECTORS)) {\n focusableElements.push(el)\n }\n\n const nestedFocusables = Array.from(el.querySelectorAll<HTMLElement>(Scrim.FOCUSABLE_SELECTORS))\n focusableElements.push(...nestedFocusables)\n })\n\n return this.filterVisibleElements(focusableElements)\n }\n\n private filterVisibleElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(\n (el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden'\n )\n }\n\n // ======================================================================\n // NAVEGAÇÃO POR TECLADO\n // ======================================================================\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n if (this.shouldHandleEscape(event)) {\n this.handleOpenChange(false)\n return\n }\n\n if (event.key === 'Tab') {\n this.handleTabNavigation(event)\n }\n }\n\n private shouldHandleEscape(event: KeyboardEvent): boolean {\n return (event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick\n }\n\n private handleTabNavigation(event: KeyboardEvent): void {\n const focusableElements = this.getFocusableElements()\n if (focusableElements.length === 0) {\n event.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n const isTabForward = !event.shiftKey\n\n if (this.shouldTrapFocus(isTabForward, firstElement, lastElement)) {\n event.preventDefault()\n this.wrapFocus(isTabForward, firstElement, lastElement)\n }\n }\n\n private shouldTrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): boolean {\n return (\n (isTabForward && document.activeElement === lastElement) ||\n (!isTabForward && document.activeElement === firstElement)\n )\n }\n\n private wrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): void {\n ;(isTabForward ? firstElement : lastElement).focus()\n }\n\n // ======================================================================\n // MANIPULAÇÃO DE EVENTOS E UTILITÁRIOS\n // ======================================================================\n private handleMaskClick = (_event: MouseEvent) => {\n if (!this.disableCloseOnClick) {\n this.close()\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-scrim': true,\n opened: this.isActive,\n 'scroll-block': this.scrollStrategy === 'block',\n 'position-top': this.positionContent === 'top',\n 'position-bottom': this.positionContent === 'bottom',\n 'position-left': this.positionContent === 'left',\n 'position-right': this.positionContent === 'right',\n 'position-center': this.positionContent === 'center',\n 'mode-fullscreen': this.displayMode === 'fullscreen',\n 'mode-parent': this.displayMode === 'parent',\n }\n }\n\n // ======================================================================\n // MÉTODOS PÚBLICOS (API)\n // ======================================================================\n /**\n * Define o limite de rolagem para o fechamento automático do scrim.\n */\n @Method()\n async setScrollThreshold(threshold: number) {\n this.scrollThreshold = threshold\n }\n\n /**\n * Método público para exibir o scrim\n */\n @Method()\n async open() {\n this.handleOpenChange(true)\n }\n\n /**\n * Método público para esconder o scrim\n */\n @Method()\n async close() {\n this.handleOpenChange(false)\n }\n\n /**\n * Método público para alternar o estado de exibição do scrim\n */\n @Method()\n async toggle() {\n this.handleOpenChange(!this.isActive)\n }\n\n render() {\n return (\n <Host>\n <slot name=\"activator\"></slot>\n <div\n class={this.getCssClassMap()}\n id={this.customId}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={this.isActive ? 'false' : 'true'}\n data-visible={this.isActive ? 'true' : 'false'}\n >\n <div class=\"mask\" onClick={this.handleMaskClick}></div>\n <div\n ref={(el) => (this.contentRef = el)}\n class=\"content\"\n tabIndex={-1}\n onKeyDown={this.handleKeyDown}\n aria-label=\"Conteúdo do diálogo\"\n >\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet ScrimId = 0\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-select.entry.esm.js","sources":["../../packages/webcomponents/src/components/select/select.scss?tag=br-select&encapsulation=shadow","../../packages/webcomponents/src/components/select/select.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/select/select\";\n@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n\n .br-select br-list {\n background-color: var(--bg-color);\n box-shadow: var(--select-shadow);\n margin-top: -2px;\n max-height: 404px;\n overflow: auto;\n position: absolute;\n resize: none;\n width: 100%;\n z-index: 1;\n\n @include scrollbar;\n\n &:focus,\n &:active {\n color: var(--color-secondary-09);\n outline: none;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background: var(--color-secondary-07);\n }\n }\n\n .br-item br-radio::part(radio-input) {\n visibility: hidden;\n height: 0;\n width: 0;\n }\n\n .br-item br-radio::part(radio-label) {\n padding-left: var(--spacing-scale-base);\n position: relative;\n\n &::before,\n &::after {\n display: none;\n }\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n@Component({\n tag: 'br-select',\n styleUrl: 'select.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Select {\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: HTMLBrSelectElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Rótulo que indica o tipo de informação que deve ser selecionada.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Texto auxiliar exibido antes de uma seleção.\n */\n @Prop({ reflect: true }) placeholder: string = ''\n\n /**\n * Habilita o modo múltiplo para selecionar várias opções.\n */\n @Prop({ reflect: true }) isMultiple: boolean = false\n\n /**\n * Define as opções disponíveis no componente de seleção.\n * Pode ser fornecida como:\n * - Uma **string** contendo um JSON válido que será analisado em um array de objetos. Exemplo: `'[{\"label\": \"Opção 1\", \"value\": \"1\"}]'.\n * - Um **array de objetos**, onde cada objeto representa uma opção com as propriedades:\n * - `label`: O texto exibido para o usuário (obrigatório).\n * - `value`: O valor associado à opção (obrigatório).\n * - `selected`: Um boolean opcional que indica se a opção está pré-selecionada (padrão: `false`).\n * Se uma string for fornecida, ela será convertida internamente para um array via `JSON.parse`. Caso o formato seja inválido, um erro será registrado e as opções serão definidas como um array vazio.\n * Exemplo de uso:\n * ```typescript\n * options='[{\"label\": \"Sim\", \"value\": \"1\"}, {\"label\": \"Não\", \"value\": \"0\"}]'\n * // ou\n * options=[{ label: \"Sim\", value: \"1\" }, { label: \"Não\", value: \"0\" }]\n * ```\n */\n @Prop({ reflect: true }) options:\n | string\n | {\n label: string\n value: string\n selected?: boolean\n }[] = []\n\n /**\n * Rótulo para selecionar todas as opções.\n */\n @Prop({ reflect: true }) selectAllLabel: string = 'Selecionar todos'\n\n /**\n * Rótulo para desmarcar todas as opções.\n */\n @Prop({ reflect: true }) unselectAllLabel: string = 'Desselecionar todos'\n\n /**\n * Exibe o ícone de busca no campo de entrada.\n */\n @Prop({ reflect: true }) showSearchIcon: boolean = false\n\n /**\n * Indica se a listagem de itens do select está expandida\n */\n @Prop({ reflect: true }) isOpen: 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-select-${selectId++}`\n\n // Representa as opções do select disponíveis para renderização.\n // Cada opção contém `label`, `value` e o estado de seleção (`selected`).\n @State() parsedOptions: { label: string; value: string; selected?: boolean }[] = []\n\n // Valor exibido no input, refletindo as opções selecionadas.\n @State() inputValue: string = ''\n\n // Indica se todas as opções estão selecionadas. Comportamento do checkbox \"Selecionar Todos\".\n @State() isAllSelected: boolean = false\n\n // Controla se a lista de opções do select está expandida (aberta) ou colapsada (fechada).\n @State() isExpanded: boolean = false\n\n // Armazena o índice do item atualmente focado, usado para navegação por teclado.\n @State() focusedIndex: number = -1\n\n /**\n * Evento emitido sempre que houver atualização nos itens selecionados.\n */\n @Event() brDidSelectChange: EventEmitter\n\n @Watch('options')\n synchronizeSelect() {\n try {\n let parsedOptions: { label: string; value: string; selected?: boolean }[] = []\n if (typeof this.options === 'string') {\n try {\n const jsonData = JSON.parse(this.options)\n if (Array.isArray(jsonData)) {\n parsedOptions = jsonData\n } else {\n throw new Error('JSON inválido: deve ser um array')\n }\n } catch (error) {\n console.error('Erro ao converter options para JSON:', error.message)\n parsedOptions = []\n }\n } else if (Array.isArray(this.options)) {\n parsedOptions = this.options\n }\n\n // Sanitiza as opções (remove opções inválidas, etc.)\n this.parsedOptions = parsedOptions\n\n // Atualiza o estado do componente\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n this.emitSelectedOptions()\n } catch (error) {\n console.error('Erro ao processar as opções do select:', error)\n this.parsedOptions = []\n }\n }\n\n componentWillLoad() {\n this.isExpanded = this.isOpen\n this.synchronizeSelect()\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside)\n }\n\n /**\n * Fecha a lista suspensa (`dropdown`) do `br-select` quando o usuário clica fora do componente.\n * O listener global é adicionado no `componentDidLoad` e removido no `disconnectedCallback` para evitar vazamentos de memória.\n * Se a lista estiver aberta (`this.isExpanded`) e o clique ocorrer fora (`!this.el.contains(target)`), ela é fechada.\n * A reatividade do StencilJS garante a atualização automática da interface.\n * A arrow function (`=>`) mantém o contexto correto de `this` ao ser usada como callback.\n *\n * @param {MouseEvent} event O evento de clique.\n * @returns {void}\n */\n private readonly handleClickOutside = (event: MouseEvent) => {\n const target = event.target as HTMLElement\n if (this.isExpanded && !this.el.contains(target)) {\n this.isExpanded = false\n }\n }\n\n private handleKeydownOnInput(event: KeyboardEvent) {\n switch (event.key) {\n case 'Tab':\n this.closeSelect()\n break\n case 'ArrowDown':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('next')\n break\n case 'ArrowUp':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('previous')\n break\n case 'Escape':\n this.closeSelect()\n this.resetFocus()\n break\n case 'Enter':\n this.toggleOpen()\n break\n default:\n }\n }\n\n private handleKeydownOnList(event: KeyboardEvent) {\n event.preventDefault()\n switch (event.key) {\n case 'Tab':\n case 'Escape':\n this.resetFocus()\n break\n case 'ArrowUp':\n this.focusItemInDirection('previous')\n break\n case 'ArrowDown':\n this.focusItemInDirection('next')\n break\n default:\n break\n }\n }\n\n private handleKeydownOnItem(event: KeyboardEvent, index: number) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleSelection(index)\n } else if (event.key === 'Escape') {\n this.closeSelect()\n }\n }\n\n private handleSelectAllKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.toggleSelectAll()\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.closeSelect()\n }\n }\n\n private resetFocus() {\n const input = this.el.shadowRoot.querySelector('br-input') as HTMLElement\n input.focus()\n }\n\n private focusItemInDirection(direction: 'next' | 'previous') {\n let itemCount = this.parsedOptions.length\n if (this.isMultiple) itemCount += 1\n\n this.focusedIndex =\n direction === 'next' ? (this.focusedIndex + 1) % itemCount : (this.focusedIndex - 1 + itemCount) % itemCount\n\n this.focusItem(this.focusedIndex)\n }\n\n private focusItem(index: number) {\n const items = this.el.shadowRoot.querySelectorAll('.br-item')\n if (items[index]) {\n const item = items[index] as HTMLElement\n item.focus()\n }\n }\n\n private openSelect() {\n this.isExpanded = true\n }\n\n private closeSelect() {\n this.isExpanded = false\n // Resetar o índice focado ao fechar o select\n this.focusedIndex = -1\n }\n\n private handleSelection(index: number) {\n if (index < 0 || index >= this.parsedOptions.length) {\n return\n }\n\n if (this.isMultiple) {\n const updatedOptions = [...this.parsedOptions]\n updatedOptions[index].selected = !updatedOptions[index].selected\n this.parsedOptions = updatedOptions\n } else {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: false }))\n updatedOptions[index].selected = true\n this.parsedOptions = updatedOptions\n this.isExpanded = false\n }\n this.updateSelectedOptions()\n this.emitSelectedOptions()\n this.updateSelectedAllState()\n }\n\n private updateSelectedOptions() {\n this.inputValue = this.getStringValue(this.parsedOptions.filter((option) => option.selected))\n }\n\n private getStringValue(options: { label: string; value: string; selected?: boolean }[]) {\n if (options.length > 0) {\n const firstSelected = options[0].label || options[0].value\n if (this.isMultiple) {\n const howManySelected = options.length > 1 ? ` + (${options.length - 1})` : ''\n return `${firstSelected}${howManySelected}`\n } else {\n return firstSelected\n }\n }\n return ''\n }\n\n private emitSelectedOptions() {\n const selectedOptions = this.parsedOptions\n .filter((option) => option.selected === true)\n .map((option) => option.label ?? option.value)\n\n this.brDidSelectChange.emit(selectedOptions)\n\n // Atualiza o valor do form associado\n this.elementInternals.setFormValue(JSON.stringify(selectedOptions))\n }\n\n private updateSelectedAllState() {\n const allSelected = this.parsedOptions.every((option) => option.selected)\n this.isAllSelected = allSelected\n }\n\n private toggleSelectAll() {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: !this.isAllSelected }))\n this.parsedOptions = updatedOptions\n this.isAllSelected = !this.isAllSelected\n\n this.updateSelectedOptions()\n this.emitSelectedOptions()\n }\n\n private renderInput() {\n return (\n <br-input\n value={this.inputValue}\n label={this.label}\n placeholder={this.placeholder}\n readonly\n onClick={() => this.toggleOpen()}\n onKeyDown={(event) => this.handleKeydownOnInput(event)}\n >\n {this.showSearchIcon && <br-icon slot=\"icon\" icon-name=\"fa-solid:search\" aria-hidden=\"true\"></br-icon>}\n <br-icon\n slot=\"action\"\n icon-name={this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down'}\n height=\"16\"\n aria-hidden=\"true\"\n ></br-icon>\n </br-input>\n )\n }\n\n private renderSelectAllCheckbox() {\n return (\n <div\n class={`br-item highlighted ${this.isAllSelected ? 'selected' : ''}`}\n data-all=\"data-all\"\n tabindex=\"-1\"\n role=\"option\"\n aria-selected={this.isAllSelected}\n onKeyDown={(event) => this.handleSelectAllKeyDown(event)}\n onClick={() => this.toggleSelectAll()}\n >\n <br-checkbox\n name={`checkbox-${this.customId}`}\n label={this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel}\n checked={this.isAllSelected}\n onCheckedChange={() => this.toggleSelectAll()}\n ></br-checkbox>\n </div>\n )\n }\n\n private renderOptions() {\n return this.parsedOptions.map((option, index) => (\n <div\n class={`br-item ${option.selected ? 'selected' : ''}`}\n key={`${option.label}-${this.customId}`}\n role=\"option\"\n tabindex={this.focusedIndex === index ? 0 : -1}\n aria-selected={option.selected}\n onClick={() => this.handleSelection(index)}\n onKeyDown={(event) => this.handleKeydownOnItem(event, index)}\n >\n {this.isMultiple ? (\n <br-checkbox\n name={`checkbox-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n onCheckedChange={() => this.handleSelection(index)}\n />\n ) : (\n <br-radio\n exportparts=\"radio-input, radio-label\"\n name={`radio-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n onCheckedChange={() => this.handleSelection(index)}\n />\n )}\n </div>\n ))\n }\n\n /**\n * Determina um id para o radio.\n */\n private getComputedId() {\n return this.customId?.length > 0 ? this.customId : `br-select-${this.customId}`\n }\n\n /**\n * Inverte o valor da prop `isOpen`\n */\n @Method()\n async toggleOpen() {\n this.isExpanded = !this.isExpanded\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-select': true,\n }\n }\n\n render() {\n return (\n <div class={this.getCssClassMap()} id={this.getComputedId()}>\n {this.renderInput()}\n\n {this.isExpanded && (\n <br-list tabindex={-1} onKeyDown={(event) => this.handleKeydownOnList(event)}>\n {this.isMultiple && this.renderSelectAllCheckbox()}\n {this.renderOptions()}\n </br-list>\n )}\n </div>\n )\n }\n}\n\nlet selectId = 0\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-step-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/step-item/step-item.scss?tag=br-step-item&encapsulation=shadow","../../packages/webcomponents/src/components/step-item/step-item.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n\n.disabled-host {\n pointer-events: none;\n}\n\n.step-button {\n position: relative;\n z-index: 2;\n}\n\n.mode-controller {\n border: 1px solid var(--gray-20);\n width: 14px;\n height: 14px;\n cursor: pointer;\n border-radius: 50%;\n background-color: var(--gray-20);\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus) var(--focus-offset);\n }\n\n &:hover {\n background-image: linear-gradient(\n rgba(var(--interactive-rgb), var(--hover)),\n rgba(var(--interactive-rgb), var(--hover))\n );\n }\n}\n\n[data-active].mode-controller {\n border: 1px solid var(--gray-20);\n background-color: var(--active);\n}\n\n.step-item-container-horizontal {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n\n &.label-top::after {\n content: \"\";\n left: 0;\n bottom: 50%;\n }\n\n &.label-bottom::after {\n content: \"\";\n left: 0;\n bottom: 86%;\n }\n\n &.label-left::after {\n bottom: 68%;\n width: 70%;\n left: 26%;\n }\n\n &.label-right::after {\n bottom: 68%;\n width: 58%;\n left: 42%;\n }\n}\n\n.step-item-container-vertical {\n display: flex;\n flex-direction: row;\n max-width: max-content;\n\n &::after {\n content: \"\";\n position: relative;\n height: 100%;\n background-color: var(--interactive);\n display: block;\n transform: translate(50%, 20px);\n z-index: -1;\n width: 2px;\n right: 50%;\n }\n\n &.label-bottom::after {\n top: 50%;\n height: 70%;\n }\n\n &.label-top::after {\n top: 50%;\n height: 70%;\n }\n\n &.label-left::after {\n right: 16%;\n top: 12%;\n }\n\n &.label-right::after {\n top: 12%;\n right: 86%;\n }\n}\n\n.step-item-content {\n display: flex;\n position: relative;\n flex-grow: 1;\n margin: auto;\n min-height: 100px;\n min-width: 80px;\n justify-content: center;\n\n &.label-top {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n &.label-bottom {\n flex-direction: column;\n align-items: center;\n }\n\n &.label-left {\n flex-direction: row-reverse;\n align-items: center;\n background-color: #fff;\n }\n\n &.label-right {\n flex-direction: row;\n align-items: center;\n background-color: #fff;\n }\n}\n\n.controller {\n display: flex;\n position: relative;\n flex-grow: 1;\n margin: 0 5px;\n min-height: unset;\n min-width: unset;\n}\n\n.step-item-container-vertical .step-item-content.label-right,\n.step-item-container-vertical .step-item-content.label-left {\n background-color: transparent;\n}\n\n.step-item-indicator-area {\n display: inline-block;\n position: relative;\n z-index: 1;\n\n .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 4;\n border-radius: 50%;\n transform: translate(25px, -5px);\n color: white;\n font-size: 16px;\n font-weight: 900;\n width: 29px;\n height: 29px;\n }\n\n .icon.no-content {\n transform: translate(0, 0);\n width: 41px;\n height: 41px;\n }\n}\n\n[data-active].step-item-indicator-area .icon.no-content {\n transform: translate(5px, 5px);\n width: 30px;\n height: 30px;\n}\n\n.success {\n background-color: var(--success);\n}\n\n.info {\n background-color: var(--info);\n}\n\n.danger {\n background-color: var(--danger);\n}\n\n.warning {\n background-color: var(--warning);\n}\n\n.step-item-label-area {\n padding: 0;\n display: flex;\n\n &.label-left {\n padding: 0 14px;\n }\n\n &.label-right {\n padding: 0 14px;\n }\n}\n\n.step-item-label-area > span {\n font-size: var(--font-size-scale-up-01);\n font-weight: var(--font-weight-medium);\n color: var(--interactive);\n}\n\n.vertical.step-item-label-area {\n &.label-top {\n padding-top: 14px;\n }\n\n &.label-bottom {\n padding-bottom: 14px;\n }\n}\n\n.horizontal.step-item-label-area {\n &.label-top {\n padding-bottom: 14px;\n }\n\n &.label-bottom {\n padding-top: 14px;\n }\n}\n\n.step-item-container-vertical .step-item-content.label-right.last .step-item-indicator-area::after,\n.step-item-container-vertical .step-item-content.label-left.last .step-item-indicator-area::after,\n.step-item-container-horizontal .step-item-content.label-bottom.last .step-item-indicator-area::after {\n display: none;\n}\n\n.step-item-container-vertical .step-item-content.label-top .step-item-label-area,\n.step-item-container-vertical .step-item-content.label-bottom .step-item-label-area {\n flex-direction: column;\n align-items: center;\n}\n\n.step-item-container-horizontal::after {\n content: \"\";\n position: relative;\n height: 2px;\n background-color: var(--interactive);\n display: block;\n transform: translate(50%, 20px);\n z-index: -1;\n width: 100%;\n left: 0;\n bottom: 75%;\n}\n\n.step-item-container-horizontal.last::after,\n.step-item-container-horizontal.controller::after,\n.step-item-container-vertical.last::after {\n content: \"\";\n height: 0;\n display: none;\n}\n\n.step-item-container-horizontal .step-item-content.label-left.timeline.last::after {\n content: \"\";\n position: absolute;\n width: 160px;\n height: 2px;\n background-color: var(--interactive);\n display: inline-block;\n right: calc(100% - 80px);\n bottom: 50%;\n z-index: -1;\n}\n\n.content-type-br-icon {\n color: var(--interactive);\n font-size: 16px;\n font-weight: 900;\n}\n\n[data-active] .content-type-br-icon {\n color: var(--interactive);\n color: #fff;\n}\n\n.button-controller {\n width: 15px;\n height: 15px;\n}\n\n/* Desktops grandes (até 1440px) */\n@media (width <= 1440px) {\n .step-item-container-horizontal.label-left::after {\n width: 50%;\n left: 48%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 58%;\n left: 48%;\n }\n}\n\n/* Laptops (até 1024px) */\n@media (width <= 1024px) {\n .step-item-container-horizontal.label-left::after {\n width: 34%;\n left: 58%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Tablets (até 768px) */\n@media (width <= 768px) {\n .step-item-container-horizontal.label-left::after {\n width: 22%;\n left: 76%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares grandes (até 425px) */\n@media (width <= 425px) {\n .step-item-container-horizontal.label-left::after {\n width: 20%;\n left: 80%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares médios (até 375px) */\n@media (width <= 375px) {\n .step-item-container-horizontal.label-left::after {\n width: 18%;\n left: 82%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares pequenos (até 320px) */\n@media (width <= 320px) {\n .step-item-container-horizontal.label-left::after {\n width: 16%;\n left: 85%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\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/step?tab=designer).\n *\n * @slot nomeado label-area: insere o conteúdo customizado dentro do botão que compõe o componente.\n */\n@Component({\n tag: 'br-step-item',\n styleUrl: 'step-item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class StepItem {\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: HTMLBrStepItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Propriedade que define o conteúdo do texto auxiliar de realce do item de Step.\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Propriedade que define o tipo de ícone de destaque exibido pelo item Step, com quatro opções disponíveis: \"success\", \"info\", \"danger\" e \"warning\".\n */\n @Prop({ reflect: true }) highlight?: 'success' | 'info' | 'danger' | 'warning'\n\n /**\n * Propriedade que define se o item Step está com estado ativo.\n */\n @Prop({ reflect: true }) active: boolean = false\n\n /**\n * Propriedade que define se o item Step está com estado desativado..\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Propriedade Define o nome do ícone do componente BRIcon que será exibido como conteúdo do step item, propriedade funciona apenas quando o state contentType assume o valor br-icon.\n */\n @Prop({ reflect: true }) brIconName?: string = ''\n /**\n * Propriedade Define o nome do ícone o texto de acessibilidade apresentando quando o tipo de conteúdo for o br-icon\n */\n\n @Prop({ reflect: true }) brIconAria: string = ''\n\n @State() showTimeLine: boolean = false\n @State() stepItemPositionStatus: 'first' | 'middle' | 'last' = 'first'\n @State() stepLayout: 'horizontal' | 'vertical' = 'horizontal'\n @State() labelPosition: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n @State() contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n @State() mode: 'controller' | 'step' = 'step'\n @State() content: string = ''\n @State() ariaLabelContent: string = ''\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brWillRender: EventEmitter<void>\n componentWillRender() {\n let accessibilityContent = ''\n let activeItem = ''\n if (this.contentType === 'slotted') {\n const slotedContent = this.el.lastElementChild\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${slotedContent.textContent} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${slotedContent.textContent} ${this.highLightAriaLabel[this.highlight]}`\n this.ariaLabelContent = accessibilityContent\n return\n }\n if (this.contentType === 'br-icon') {\n accessibilityContent =\n `passo ${this.content} ` + this.brIconAria + this.label + this.highLightAriaLabel[this.highlight]\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n return\n } else {\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${this.highLightAriaLabel[this.highlight]}`\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n }\n }\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidRender: EventEmitter<void>\n componentDidRender() {\n const button = this.el.shadowRoot.getElementById('indicator-area').lastElementChild.shadowRoot\n if (button !== null) {\n button.lastElementChild.setAttribute('role', 'option')\n button.lastElementChild.setAttribute('aria-selected', `${this.active}`)\n button.lastElementChild.setAttribute('aria-label', this.ariaLabelContent)\n }\n }\n\n /**\n * Watch que observa o valor da propriedade active, e ao alterar seu valor este método altera o valor do campo de acessibilidade aria-selected\n */\n @Watch('active')\n watchItemIsActive(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n const button = this.el.shadowRoot.getElementById('indicator-area').lastElementChild.shadowRoot\n if (button !== null) {\n button.lastElementChild.setAttribute('aria-selected', `${this.active}`)\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que indica a posição do step item, ele serve para setar o state stepItemPositionStatus do componente\n */\n @Method()\n async setStepItemPositionStatus(value: 'first' | 'middle' | 'last') {\n this.stepItemPositionStatus = value\n }\n\n /**\n * Método que define a orientação do stepItem e controla a exibição da linha do tempo após o componente.\n */\n @Method()\n async handleShowTimeLine(value: boolean, layout) {\n this.showTimeLine = value\n this.stepLayout = layout\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor ao estado que define onde o label, o texto de destaque, irá ficar localizado\n */\n @Method()\n async setLabelPosition(value: 'top' | 'right' | 'bottom' | 'left') {\n this.labelPosition = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o tipo de conteúdo apresentado dentro do componente stepItem\n */\n @Method()\n async setContentType(value: 'default' | 'br-icon' | 'no-content' | 'slotted') {\n this.contentType = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o modo como o componente irá se comportar e exibir seu estilo.\n */\n @Method()\n async setMode(value: 'controller' | 'step') {\n this.mode = value\n }\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá ser exibido dentro do componente stepItem\n */\n @Method()\n async setContent(value: string) {\n this.content = value\n }\n\n private getStepContainerClassMap(): CssClassMap {\n return {\n 'step-item-container-horizontal': this.stepLayout === 'horizontal',\n 'step-item-container-vertical': this.stepLayout === 'vertical',\n last: this.stepItemPositionStatus == 'last',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n 'label-bottom': this.labelPosition === 'bottom' && this.label !== '',\n controller: this.mode === 'controller',\n 'disabled-div': true,\n }\n }\n\n private getStepItemContentClassMap(): CssClassMap {\n return {\n 'step-item-content': true,\n 'label-bottom': this.labelPosition === 'bottom',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n timeline: this.showTimeLine === true,\n middle: this.stepItemPositionStatus === 'middle',\n first: this.stepItemPositionStatus === 'first',\n controller: this.mode === 'controller',\n }\n }\n\n private getStepItemIndicatorAreaClassMap(): CssClassMap {\n return {\n 'step-item-indicator-area': true,\n }\n }\n\n private getStepItemLabelAreaClassMap(): CssClassMap {\n return {\n 'step-item-label-area': true,\n vertical: this.stepLayout === 'vertical',\n horizontal: this.stepLayout === 'horizontal',\n 'label-bottom': this.labelPosition === 'bottom',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n 'no-label': this.label === '',\n }\n }\n\n private getHighlightClass(): CssClassMap {\n return {\n icon: true,\n success: this.highlight === 'success',\n info: this.highlight === 'info',\n warning: this.highlight === 'warning',\n danger: this.highlight === 'danger',\n 'no-content': this.contentType === 'no-content',\n }\n }\n\n private getStepItemIndicatorClass(): CssClassMap {\n return {\n 'step-button': true,\n controller: this.mode === 'controller',\n 'disabled-host': this.disabled,\n }\n }\n\n private highLightAriaLabel = {\n success: 'passo completo',\n info: 'passo com item informativo',\n warning: 'passo com alerta',\n danger: 'passo com erro',\n undefined: '',\n }\n\n private IconsName = {\n success: 'fa-check',\n info: 'fa-info-circle',\n warning: 'fa-exclamation-triangle',\n danger: 'fa-times',\n }\n\n render() {\n return (\n <Host>\n <div id=\"item-container\" class={this.getStepContainerClassMap()}>\n <div id=\"item-content\" class={this.getStepItemContentClassMap()}>\n <div id=\"indicator-area\" data-active={this.active} class={this.getStepItemIndicatorAreaClassMap()}>\n {this.mode === 'step' && this.highlight && (\n <div class={this.getHighlightClass()}>\n <br-icon\n icon-name={this.IconsName[this.highlight]}\n class={`${this.highlight === 'warning' && 'warning-color'}`}\n ></br-icon>\n </div>\n )}\n\n {this.mode === 'step' && (\n <br-button\n shape=\"circle\"\n emphasis=\"secondary\"\n isActive={this.active}\n class={this.getStepItemIndicatorClass()}\n >\n {this.contentType === 'no-content' && ''}\n {this.contentType === 'default' && this.content}\n {this.contentType === 'br-icon' && (\n <br-icon icon-name={this.brIconName} class={'content-type-br-icon'}></br-icon>\n )}\n {this.contentType === 'slotted' && <slot name={'content-area'}></slot>}\n </br-button>\n )}\n\n {this.mode === 'controller' && <button data-active={this.active} class={'mode-controller'}></button>}\n </div>\n <div id=\"label-area\" class={this.getStepItemLabelAreaClassMap()}>\n <span> {this.label} </span>\n </div>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-step.entry.esm.js","sources":["../../packages/webcomponents/src/components/step/step.scss?tag=br-step&encapsulation=shadow","../../packages/webcomponents/src/components/step/step.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/step/step\";\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n\n .step-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n overflow: auto;\n flex-grow: 1;\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus) var(--focus-offset);\n }\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .vertical {\n flex-direction: column;\n justify-content: center;\n\n &.label-right {\n align-items: start;\n padding-left: 20px;\n }\n\n &.label-left {\n align-items: start;\n padding-right: 20px;\n }\n }\n}\n\n::slotted([disabled]) {\n opacity: 1 !important;\n}\n\n::slotted(.linha) {\n width: 100px;\n height: 2px;\n display: flex;\n align-items: center;\n background-color: var(--interactive);\n}\n\n::slotted(*) {\n flex: 1;\n min-width: 0;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\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/step?tab=designer).\n *\n * @slot default - Slot que abriga o componente step-item. Este slot tem a particularidade de aceitar somente o componente step-item em sua composição. Caso outro elemento ou componente seja incluído dentro dele, o componente Step não será renderizado, e uma mensagem de erro será exibida no console.\n */\n@Component({\n tag: 'br-step',\n styleUrl: 'step.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Step {\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: HTMLBrStepElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * propriedade responsável por definir a orientação do componente Step\n */\n @Prop({ reflect: true }) layout: 'horizontal' | 'vertical' = 'horizontal'\n /**\n *\n * define o passo que começará destacado\n */\n @Prop({ reflect: true }) initialStep: string = '0'\n /**\n *\n * Propriedade que define a posição onde o texto de destaque,label, ficará localizado no stepItem\n */\n @Prop({ reflect: true }) labelPosition?: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n /**\n *\n * Propriedade que define o tipo de conteúdo a ser exibido dentro do componente step e stepItem\n */\n @Prop({ reflect: true }) contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n /**\n *\n * Propriedade que define o tipo de comportamento que o componente Step deverá seguir\n */\n @Prop({ reflect: true }) mode: 'controller' | 'step' = 'step'\n\n /**\n *\n * Propriedade que define o tipo de progressão de etapas que o step vai executar\n */\n @Prop({ reflect: true }) progressionType: 'linear' | 'nonlinear' = 'nonlinear'\n\n @State() activeStep: number = 0\n @State() stepItems: Element[] = []\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidLoad: EventEmitter<void>\n componentDidLoad() {\n this.setStepItemsLabelPosition()\n this.setStepItemsContentType()\n this.setStepItemsDefaultContent()\n this.setStepItemsMode(this.mode)\n if (this.mode === 'step') {\n this.configureTimeLine()\n }\n if (this.progressionType === 'linear') {\n this.configureLinearProgression()\n }\n if (this.activeStep <= this.stepItems.length - 1) {\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n } else {\n console.warn('br-step initial-step attribute has value more than number of step-items provided')\n }\n this.brDidLoad.emit()\n }\n\n /**\n * Emite um evento antes do componente ser renderizado pela primeira vez, permitindo a preparação de dados ou inicializações necessárias.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdwillLoad) para mais detalhes.\n */\n @Event() brWilLoad: EventEmitter<void>\n componentWillLoad() {\n this.activeStep = Number(this.initialStep)\n this.getStepItemsElements()\n this.brWilLoad.emit()\n }\n\n /**\n * Emite um evento para indicar se o componente deve ser atualizado ou não.\n * Este evento é chamado antes de qualquer atualização do componente para decidir se a atualização deve prosseguir.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentshouldupdate) para mais detalhes.\n */\n @Event() brShouldUpdate: EventEmitter<void>\n componentShouldUpdate(newValue, oldValue, stateName) {\n if (stateName == 'activeStep' && oldValue != newValue) {\n const outOfRange = oldValue > this.stepItems.length - 1\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n if (!outOfRange) {\n this.stepItems[oldValue].removeAttribute('active')\n }\n this.brShouldUpdate.emit()\n }\n }\n\n /**\n * listener para ouvir o evento de click no componente step\n * Através desse listener o componente define qual será o proximo passo do step que terá o estado ativo\n */\n\n @Listen('click', { capture: true })\n handleClick(event) {\n const targetElement = event.target as Element\n if (targetElement.getAttribute('slot') !== null) {\n const slotItem = this.stepItems.findIndex((element) => element.lastElementChild === targetElement)\n this.activeStep = slotItem\n return\n }\n const item = this.stepItems.findIndex((element) => element === targetElement)\n this.activeStep = item\n }\n\n private getStepItemsElements() {\n const slotItems = Array.from(this.el.children)\n const firstChildrenContentTypeValue = slotItems[0].getAttribute('content-type')\n const childrenHaveConsistentContentType = slotItems.every(\n (item) => item.getAttribute('content-type') === firstChildrenContentTypeValue\n )\n const childrenHaveConsistentTagName = slotItems.every((item) => item.tagName.toLowerCase() === 'br-step-item')\n if (childrenHaveConsistentContentType && childrenHaveConsistentTagName) {\n this.stepItems = slotItems\n return\n }\n if (!childrenHaveConsistentTagName) {\n throw new Error('br-step component must have as child elements only br-step-items components')\n }\n if (!childrenHaveConsistentContentType) {\n throw new Error('br-step must have all child elements with same content type attribute value')\n }\n }\n\n private setStepItemsLabelPosition() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (this.labelPosition !== undefined) {\n elements.setLabelPosition(this.labelPosition)\n }\n })\n }\n\n private setStepItemsDefaultContent() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const indicatorContent = index + 1\n elements.setContent(indicatorContent.toString())\n })\n }\n\n private async setStepItemsContentType() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n await Promise.all(slotItems.map((element) => element.setContentType(this.contentType)))\n slotItems.forEach((elements, index) => {\n elements.setAttribute('aria-posinset', `${index + 1}`)\n elements.setAttribute('aria-setsize', `${slotItems.length}`)\n })\n }\n\n private setStepItemsMode(mode: 'controller' | 'step') {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (mode === 'controller') {\n elements.setMode(this.mode)\n elements.setContentType('no-content')\n if (this.layout !== 'horizontal') {\n this.layout = 'horizontal'\n }\n elements.handleShowTimeLine(false, this.layout)\n elements.removeAttribute('label')\n }\n })\n }\n\n private getStepItemPosition(stepItemsElements: HTMLBrStepItemElement[], index) {\n if (index === 0) {\n return 'first'\n }\n if (index > 0 && index < stepItemsElements.length - 1) {\n return 'middle'\n }\n return 'last'\n }\n\n private configureTimeLine() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const elementPosition = this.getStepItemPosition(slotItems, index)\n elements.setStepItemPositionStatus(elementPosition)\n elements.handleShowTimeLine(true, this.layout)\n })\n }\n\n private configureLinearProgression() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n if (index > 0) {\n elements.setAttribute('disabled', 'true')\n }\n })\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por avançar para o próximo passo e atualizar o valor do estado activeStep\n */\n @Method()\n async ProceedToNextStep() {\n if (this.activeStep + 1 < this.stepItems.length) {\n this.activeStep = this.activeStep + 1\n if (this.progressionType === 'linear') {\n this.stepItems[this.activeStep].removeAttribute('disabled')\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por retornar ao passo anterior e atualizar o valor do estado activeStep\n */\n @Method()\n async BackToPreviousStep() {\n if (this.activeStep - 1 >= 0) {\n this.activeStep = this.activeStep - 1\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que integra um componente externo ao componente Step, permitindo sinalizar validações ou destacar a etapa com estado ativo.\n */\n @Method()\n async StepValidation(validationStatus: 'success' | 'info' | 'danger' | 'warning') {\n this.stepItems[this.activeStep].setAttribute('highlight', validationStatus)\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que permite a um componente externo obter a etapa com o estado ativo do componente Step.\n */\n @Method()\n async GetActiveStep() {\n return this.activeStep\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-step': true,\n 'step-container': true,\n horizontal: this.layout === 'horizontal',\n vertical: this.layout === 'vertical',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n }\n }\n\n private AriaObjectContent = {\n step: 'Modo etapas ',\n controller: 'Modo controle ',\n default: 'passos com conteúdo numérico ',\n 'br-icon': 'passos com conteúdo que possuem icones ',\n slotted: 'passos com conteúdo customizados ',\n 'no-content': 'passos que apresentam conteúdo por meio de tooltip ',\n linear: 'progressão linear ',\n nonlinear: 'progressão não linear ',\n vertical: 'com layout vertical ',\n horizontal: 'com layout horizontal ',\n }\n\n private getAreaLabel(): string {\n let ariaLabel = ' Lista de Opções '\n if (this.mode !== 'controller') {\n ariaLabel +=\n this.AriaObjectContent[this.mode] +\n this.AriaObjectContent[this.contentType] +\n this.AriaObjectContent[this.progressionType] +\n this.AriaObjectContent[this.layout]\n } else {\n ariaLabel += this.AriaObjectContent[this.mode]\n }\n return ariaLabel\n }\n\n render() {\n return (\n <Host>\n {this.stepItems.length > 0 && (\n <div\n role=\"listbox\"\n tabIndex={0}\n aria-orientation={this.layout}\n aria-label={this.getAreaLabel()}\n class={this.getCssClassMap()}\n >\n <slot></slot>\n </div>\n )}\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-switch.entry.esm.js","sources":["../../packages/webcomponents/src/components/switch/switch.scss?tag=br-switch&encapsulation=shadow","../../packages/webcomponents/src/components/switch/switch.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/switch/switch\";\n\n:host {\n display: block;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, 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/switch?tab=designer).\n *\n * @slot default - Descreve o que o switch faz quando a alternância estiver ativada. A label passada por slot tem precedência sobre a propriedade 'label'.\n */\n@Component({\n tag: 'br-switch',\n styleUrl: 'switch.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Switch {\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: HTMLBrSwitchElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o switch, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: 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-switch-${switchId++}`\n\n /**\n * Texto descritivo.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop() readonly label: string\n\n /**\n * Posição do rótulo em relação ao switch.\n */\n @Prop({ reflect: true }) readonly labelPosition: 'right' | 'left' | 'top' = 'left'\n\n /**\n * Texto exibido quando o switch está ativado.\n */\n @Prop({ reflect: true }) readonly labelOn: string\n\n /**\n * Texto exibido quando o switch está desativado.\n */\n @Prop({ reflect: true }) readonly labelOff: string\n\n /**\n * Adiciona um ícone ao switch para indicar a mudança de estado.\n */\n @Prop({ reflect: true }) readonly hasIcon: boolean = false\n\n /**\n * Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o switch está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n /** O ajuste da densidade consiste em aumentar ou reduzir a área de interação do switch. Quanto menor for a densidade, maior a área de interação. */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() _slotDefault: boolean = false\n\n componentWillLoad() {\n this._hasSlotContentDefault()\n }\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n private _hasSlotContentDefault(): void {\n this._slotDefault = this.el.innerHTML !== ''\n }\n\n private readonly handleCheckedChange = (event: Event) => {\n this.checked = (event.target as HTMLInputElement).checked\n this.checkedChange.emit(this.checked)\n }\n\n private readonly handleClick = (event: Event) => {\n event.stopPropagation()\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-switch': true,\n icon: this.hasIcon,\n top: this.labelPosition === 'top',\n right: this.labelPosition === 'right',\n large: this.density === 'large',\n small: this.density === 'small',\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n id={this.customId}\n type=\"checkbox\"\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n role=\"switch\"\n aria-checked={this.checked.toString()}\n aria-disabled={this.disabled ? 'true' : null}\n onChange={this.handleCheckedChange}\n onClick={this.handleClick}\n />\n <label htmlFor={this.customId}>{this._slotDefault ? <slot></slot> : this.label}</label>\n {this.labelOn && this.labelOff && (\n <div class=\"switch-data\" data-enabled={this.labelOn} data-disabled={this.labelOff}></div>\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet switchId = 0\n"],"names":[],"mappings":"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"}