@govbr-ds/webcomponents 2.0.0-next.44 → 2.0.0-next.45

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 (445) hide show
  1. package/dist/cjs/br-avatar.cjs.entry.js +104 -31
  2. package/dist/cjs/br-avatar.cjs.entry.js.map +1 -1
  3. package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
  4. package/dist/cjs/br-breadcrumb.cjs.entry.js +6 -9
  5. package/dist/cjs/br-breadcrumb.cjs.entry.js.map +1 -1
  6. package/dist/cjs/br-breadcrumb.entry.cjs.js.map +1 -1
  7. package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
  8. package/dist/cjs/br-button_2.cjs.entry.js +3 -3
  9. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/br-card.cjs.entry.js +97 -0
  11. package/dist/cjs/br-card.cjs.entry.js.map +1 -0
  12. package/dist/cjs/br-card.entry.cjs.js.map +1 -0
  13. package/dist/cjs/br-checkbox.cjs.entry.js +8 -13
  14. package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -1
  15. package/dist/cjs/br-checkbox.entry.cjs.js.map +1 -1
  16. package/dist/cjs/br-checkgroup.cjs.entry.js +3 -5
  17. package/dist/cjs/br-checkgroup.cjs.entry.js.map +1 -1
  18. package/dist/cjs/br-checkgroup.entry.cjs.js.map +1 -1
  19. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
  20. package/dist/cjs/br-collapse_2.cjs.entry.js +14 -22
  21. package/dist/cjs/br-collapse_2.cjs.entry.js.map +1 -1
  22. package/dist/cjs/br-divider.cjs.entry.js +2 -3
  23. package/dist/cjs/br-divider.cjs.entry.js.map +1 -1
  24. package/dist/cjs/br-divider.entry.cjs.js.map +1 -1
  25. package/dist/cjs/br-dropdown.cjs.entry.js +14 -21
  26. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
  27. package/dist/cjs/br-dropdown.entry.cjs.js.map +1 -1
  28. package/dist/cjs/br-footer-category.cjs.entry.js +2 -2
  29. package/dist/cjs/br-footer-item.cjs.entry.js +1 -1
  30. package/dist/cjs/br-footer-legal.cjs.entry.js +1 -1
  31. package/dist/cjs/br-footer-logo.cjs.entry.js +1 -1
  32. package/dist/cjs/br-footer-logo.cjs.entry.js.map +1 -1
  33. package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -1
  34. package/dist/cjs/br-footer-social.cjs.entry.js +1 -1
  35. package/dist/cjs/br-footer.cjs.entry.js +1 -1
  36. package/dist/cjs/br-input.br-radio.entry.cjs.js.map +1 -1
  37. package/dist/cjs/br-input_2.cjs.entry.js +10 -17
  38. package/dist/cjs/br-input_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/br-item.cjs.entry.js +11 -10
  40. package/dist/cjs/br-item.cjs.entry.js.map +1 -1
  41. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  42. package/dist/cjs/br-loading.cjs.entry.js +4 -5
  43. package/dist/cjs/br-loading.cjs.entry.js.map +1 -1
  44. package/dist/cjs/br-loading.entry.cjs.js.map +1 -1
  45. package/dist/cjs/br-magic-button.cjs.entry.js +2 -2
  46. package/dist/cjs/br-magic-button.cjs.entry.js.map +1 -1
  47. package/dist/cjs/br-magic-button.entry.cjs.js.map +1 -1
  48. package/dist/cjs/br-message.cjs.entry.js +1 -1
  49. package/dist/cjs/br-scrim.cjs.entry.js +17 -29
  50. package/dist/cjs/br-scrim.cjs.entry.js.map +1 -1
  51. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  52. package/dist/cjs/br-select.cjs.entry.js +16 -20
  53. package/dist/cjs/br-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/br-select.entry.cjs.js.map +1 -1
  55. package/dist/cjs/br-step-item.cjs.entry.js +14 -27
  56. package/dist/cjs/br-step-item.cjs.entry.js.map +1 -1
  57. package/dist/cjs/br-step-item.entry.cjs.js.map +1 -1
  58. package/dist/cjs/br-step.cjs.entry.js +21 -32
  59. package/dist/cjs/br-step.cjs.entry.js.map +1 -1
  60. package/dist/cjs/br-step.entry.cjs.js.map +1 -1
  61. package/dist/cjs/br-switch.cjs.entry.js +4 -7
  62. package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
  63. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  64. package/dist/cjs/br-tab-item.cjs.entry.js +2 -2
  65. package/dist/cjs/br-tab-item.cjs.entry.js.map +1 -1
  66. package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -1
  67. package/dist/cjs/br-tab.cjs.entry.js +4 -5
  68. package/dist/cjs/br-tab.cjs.entry.js.map +1 -1
  69. package/dist/cjs/br-tab.entry.cjs.js.map +1 -1
  70. package/dist/cjs/br-table-cell.cjs.entry.js +1 -1
  71. package/dist/cjs/br-table-header-cell.cjs.entry.js +1 -1
  72. package/dist/cjs/br-table-header-row.cjs.entry.js +1 -1
  73. package/dist/cjs/br-table-row.cjs.entry.js +1 -1
  74. package/dist/cjs/br-table.cjs.entry.js +1 -1
  75. package/dist/cjs/br-tag.cjs.entry.js +2 -2
  76. package/dist/cjs/br-textarea.cjs.entry.js +8 -15
  77. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
  78. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  79. package/dist/cjs/br-tooltip.cjs.entry.js +18 -28
  80. package/dist/cjs/br-tooltip.cjs.entry.js.map +1 -1
  81. package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
  82. package/dist/cjs/br-upload.cjs.entry.js +2 -3
  83. package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
  84. package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
  85. package/dist/cjs/index-DNnn1o_9.js +4 -0
  86. package/dist/cjs/loader.cjs.js +1 -1
  87. package/dist/cjs/webcomponents.cjs.js +1 -1
  88. package/dist/collection/collection-manifest.json +1 -0
  89. package/dist/collection/components/avatar/avatar.css +1 -1
  90. package/dist/collection/components/avatar/avatar.js +120 -85
  91. package/dist/collection/components/avatar/avatar.js.map +1 -1
  92. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  93. package/dist/collection/components/breadcrumb/breadcrumb.js +5 -8
  94. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  95. package/dist/collection/components/button/button.css +1 -1
  96. package/dist/collection/components/button/button.js +1 -1
  97. package/dist/collection/components/card/card.css +1 -0
  98. package/dist/collection/components/card/card.js +166 -0
  99. package/dist/collection/components/card/card.js.map +1 -0
  100. package/dist/collection/components/checkbox/checkbox.js +8 -13
  101. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  102. package/dist/collection/components/checkgroup/checkgroup.js +3 -5
  103. package/dist/collection/components/checkgroup/checkgroup.js.map +1 -1
  104. package/dist/collection/components/collapse/collapse.js +11 -18
  105. package/dist/collection/components/collapse/collapse.js.map +1 -1
  106. package/dist/collection/components/divider/divider.js +2 -3
  107. package/dist/collection/components/divider/divider.js.map +1 -1
  108. package/dist/collection/components/dropdown/dropdown.js +14 -21
  109. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  110. package/dist/collection/components/footer/footer.js +1 -1
  111. package/dist/collection/components/footer-category/footer-category.js +2 -2
  112. package/dist/collection/components/footer-item/footer-item.js +1 -1
  113. package/dist/collection/components/footer-legal/footer-legal.js +1 -1
  114. package/dist/collection/components/footer-logo/footer-logo.js +1 -1
  115. package/dist/collection/components/footer-logo/footer-logo.js.map +1 -1
  116. package/dist/collection/components/footer-social/footer-social.js +1 -1
  117. package/dist/collection/components/icon/icon.js +1 -1
  118. package/dist/collection/components/input/input.js +4 -7
  119. package/dist/collection/components/input/input.js.map +1 -1
  120. package/dist/collection/components/item/item.js +11 -10
  121. package/dist/collection/components/item/item.js.map +1 -1
  122. package/dist/collection/components/list/list.js +3 -4
  123. package/dist/collection/components/list/list.js.map +1 -1
  124. package/dist/collection/components/loading/loading.css +1 -1
  125. package/dist/collection/components/loading/loading.js +3 -4
  126. package/dist/collection/components/loading/loading.js.map +1 -1
  127. package/dist/collection/components/magic-button/magic-button.css +1 -1
  128. package/dist/collection/components/magic-button/magic-button.js +1 -1
  129. package/dist/collection/components/magic-button/magic-button.js.map +1 -1
  130. package/dist/collection/components/message/message.js +1 -1
  131. package/dist/collection/components/radio/radio.js +6 -10
  132. package/dist/collection/components/radio/radio.js.map +1 -1
  133. package/dist/collection/components/scrim/scrim.js +17 -29
  134. package/dist/collection/components/scrim/scrim.js.map +1 -1
  135. package/dist/collection/components/select/select.js +16 -20
  136. package/dist/collection/components/select/select.js.map +1 -1
  137. package/dist/collection/components/step/step.js +21 -32
  138. package/dist/collection/components/step/step.js.map +1 -1
  139. package/dist/collection/components/step-item/step-item.js +14 -27
  140. package/dist/collection/components/step-item/step-item.js.map +1 -1
  141. package/dist/collection/components/switch/switch.js +4 -7
  142. package/dist/collection/components/switch/switch.js.map +1 -1
  143. package/dist/collection/components/tab/tab.css +1 -1
  144. package/dist/collection/components/tab/tab.js +3 -4
  145. package/dist/collection/components/tab/tab.js.map +1 -1
  146. package/dist/collection/components/tab-item/tab-item.css +1 -1
  147. package/dist/collection/components/tab-item/tab-item.js +1 -1
  148. package/dist/collection/components/table/table.js +1 -1
  149. package/dist/collection/components/table-cell/table-cell.js +1 -1
  150. package/dist/collection/components/table-header-cell/table-header-cell.js +1 -1
  151. package/dist/collection/components/table-header-row/table-header-row.js +1 -1
  152. package/dist/collection/components/table-row/table-row.js +1 -1
  153. package/dist/collection/components/tag/tag.js +2 -2
  154. package/dist/collection/components/textarea/textarea.js +8 -15
  155. package/dist/collection/components/textarea/textarea.js.map +1 -1
  156. package/dist/collection/components/tooltip/tooltip.js +8 -12
  157. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  158. package/dist/collection/components/upload/upload.js +2 -3
  159. package/dist/collection/components/upload/upload.js.map +1 -1
  160. package/dist/collection/pages/components/card/index.js +18 -0
  161. package/dist/collection/pages/scripts/menu.js +13 -0
  162. package/dist/collection/utils/floating-ui.js +10 -16
  163. package/dist/collection/utils/floating-ui.js.map +1 -1
  164. package/dist/components/br-avatar.js +117 -69
  165. package/dist/components/br-avatar.js.map +1 -1
  166. package/dist/components/br-breadcrumb.js +22 -25
  167. package/dist/components/br-breadcrumb.js.map +1 -1
  168. package/dist/components/br-button.js +3 -3
  169. package/dist/components/br-card.d.ts +11 -0
  170. package/dist/components/br-card.js +141 -0
  171. package/dist/components/br-card.js.map +1 -0
  172. package/dist/components/br-checkbox.js +1 -1
  173. package/dist/components/br-checkgroup.js +15 -17
  174. package/dist/components/br-checkgroup.js.map +1 -1
  175. package/dist/components/br-collapse.js +4 -4
  176. package/dist/components/br-divider.js +1 -1
  177. package/dist/components/br-dropdown.js +31 -39
  178. package/dist/components/br-dropdown.js.map +1 -1
  179. package/dist/components/br-footer-category.js +9 -9
  180. package/dist/components/br-footer-item.js +4 -4
  181. package/dist/components/br-footer-legal.js +3 -3
  182. package/dist/components/br-footer-logo.js +8 -7
  183. package/dist/components/br-footer-logo.js.map +1 -1
  184. package/dist/components/br-footer-social.js +5 -5
  185. package/dist/components/br-footer.js +15 -15
  186. package/dist/components/br-icon.js +1 -1
  187. package/dist/components/br-input.js +3 -3
  188. package/dist/components/br-item.js +3 -3
  189. package/dist/components/br-list.js +4 -4
  190. package/dist/components/br-loading.js +7 -6
  191. package/dist/components/br-loading.js.map +1 -1
  192. package/dist/components/br-magic-button.js +10 -9
  193. package/dist/components/br-magic-button.js.map +1 -1
  194. package/dist/components/br-message.js +3 -3
  195. package/dist/components/br-radio.js +4 -4
  196. package/dist/components/br-scrim.js +44 -57
  197. package/dist/components/br-scrim.js.map +1 -1
  198. package/dist/components/br-select.js +41 -46
  199. package/dist/components/br-select.js.map +1 -1
  200. package/dist/components/br-step-item.js +36 -50
  201. package/dist/components/br-step-item.js.map +1 -1
  202. package/dist/components/br-step.js +30 -42
  203. package/dist/components/br-step.js.map +1 -1
  204. package/dist/components/br-switch.js +17 -21
  205. package/dist/components/br-switch.js.map +1 -1
  206. package/dist/components/br-tab-item.js +10 -10
  207. package/dist/components/br-tab.js +15 -16
  208. package/dist/components/br-tab.js.map +1 -1
  209. package/dist/components/br-table-cell.js +3 -3
  210. package/dist/components/br-table-header-cell.js +3 -3
  211. package/dist/components/br-table-header-row.js +3 -3
  212. package/dist/components/br-table-row.js +3 -3
  213. package/dist/components/br-table.js +6 -6
  214. package/dist/components/br-tag.js +8 -8
  215. package/dist/components/br-textarea.js +30 -37
  216. package/dist/components/br-textarea.js.map +1 -1
  217. package/dist/components/br-tooltip.js +118 -132
  218. package/dist/components/br-tooltip.js.map +1 -1
  219. package/dist/components/br-upload.js +14 -15
  220. package/dist/components/br-upload.js.map +1 -1
  221. package/dist/components/index.d.ts +2 -0
  222. package/dist/components/index.js +2 -0
  223. package/dist/components/{p-1eKV5oxP.js → p-3-jhm6pC.js} +8 -9
  224. package/dist/components/p-3-jhm6pC.js.map +1 -0
  225. package/dist/components/{p-BU5QW70m.js → p-BlryBljm.js} +28 -33
  226. package/dist/components/p-BlryBljm.js.map +1 -0
  227. package/dist/components/{p-DqQ_qkzV.js → p-DhONBlJ-.js} +6 -7
  228. package/dist/components/p-DhONBlJ-.js.map +1 -0
  229. package/dist/components/{p-DtU3ZpAC.js → p-DvuyuK9Y.js} +20 -26
  230. package/dist/components/{p-DtU3ZpAC.js.map → p-DvuyuK9Y.js.map} +1 -1
  231. package/dist/components/{p-CwEkkt16.js → p-Hceu1c6D.js} +39 -47
  232. package/dist/components/p-Hceu1c6D.js.map +1 -0
  233. package/dist/components/{p-B3u7t9TB.js → p-mX_ZX0bR.js} +13 -18
  234. package/dist/components/p-mX_ZX0bR.js.map +1 -0
  235. package/dist/components/{p-DoUCJxLj.js → p-ssSt5UuQ.js} +6 -6
  236. package/dist/components/{p-0V7YvY_S.js → p-xvM_htUS.js} +4 -4
  237. package/dist/components/{p-B-uKqjsz.js → p-y6TZslWo.js} +21 -26
  238. package/dist/components/p-y6TZslWo.js.map +1 -0
  239. package/dist/custom-docs/output-docs.js +3 -5
  240. package/dist/custom-docs/output-docs.js.map +1 -1
  241. package/dist/custom-docs/path.js +1 -2
  242. package/dist/custom-docs/path.js.map +1 -1
  243. package/dist/custom-elements.json +317 -70
  244. package/dist/esm/br-avatar.entry.js +104 -31
  245. package/dist/esm/br-avatar.entry.js.map +1 -1
  246. package/dist/esm/br-breadcrumb.entry.js +6 -9
  247. package/dist/esm/br-breadcrumb.entry.js.map +1 -1
  248. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  249. package/dist/esm/br-button_2.entry.js +3 -3
  250. package/dist/esm/br-button_2.entry.js.map +1 -1
  251. package/dist/esm/br-card.entry.js +95 -0
  252. package/dist/esm/br-card.entry.js.map +1 -0
  253. package/dist/esm/br-checkbox.entry.js +8 -13
  254. package/dist/esm/br-checkbox.entry.js.map +1 -1
  255. package/dist/esm/br-checkgroup.entry.js +3 -5
  256. package/dist/esm/br-checkgroup.entry.js.map +1 -1
  257. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  258. package/dist/esm/br-collapse_2.entry.js +14 -22
  259. package/dist/esm/br-collapse_2.entry.js.map +1 -1
  260. package/dist/esm/br-divider.entry.js +2 -3
  261. package/dist/esm/br-divider.entry.js.map +1 -1
  262. package/dist/esm/br-dropdown.entry.js +14 -21
  263. package/dist/esm/br-dropdown.entry.js.map +1 -1
  264. package/dist/esm/br-footer-category.entry.js +2 -2
  265. package/dist/esm/br-footer-item.entry.js +1 -1
  266. package/dist/esm/br-footer-legal.entry.js +1 -1
  267. package/dist/esm/br-footer-logo.entry.js +1 -1
  268. package/dist/esm/br-footer-logo.entry.js.map +1 -1
  269. package/dist/esm/br-footer-social.entry.js +1 -1
  270. package/dist/esm/br-footer.entry.js +1 -1
  271. package/dist/esm/br-input.br-radio.entry.js.map +1 -1
  272. package/dist/esm/br-input_2.entry.js +10 -17
  273. package/dist/esm/br-input_2.entry.js.map +1 -1
  274. package/dist/esm/br-item.entry.js +11 -10
  275. package/dist/esm/br-item.entry.js.map +1 -1
  276. package/dist/esm/br-loading.entry.js +4 -5
  277. package/dist/esm/br-loading.entry.js.map +1 -1
  278. package/dist/esm/br-magic-button.entry.js +2 -2
  279. package/dist/esm/br-magic-button.entry.js.map +1 -1
  280. package/dist/esm/br-message.entry.js +1 -1
  281. package/dist/esm/br-scrim.entry.js +17 -29
  282. package/dist/esm/br-scrim.entry.js.map +1 -1
  283. package/dist/esm/br-select.entry.js +16 -20
  284. package/dist/esm/br-select.entry.js.map +1 -1
  285. package/dist/esm/br-step-item.entry.js +14 -27
  286. package/dist/esm/br-step-item.entry.js.map +1 -1
  287. package/dist/esm/br-step.entry.js +21 -32
  288. package/dist/esm/br-step.entry.js.map +1 -1
  289. package/dist/esm/br-switch.entry.js +4 -7
  290. package/dist/esm/br-switch.entry.js.map +1 -1
  291. package/dist/esm/br-tab-item.entry.js +2 -2
  292. package/dist/esm/br-tab-item.entry.js.map +1 -1
  293. package/dist/esm/br-tab.entry.js +4 -5
  294. package/dist/esm/br-tab.entry.js.map +1 -1
  295. package/dist/esm/br-table-cell.entry.js +1 -1
  296. package/dist/esm/br-table-header-cell.entry.js +1 -1
  297. package/dist/esm/br-table-header-row.entry.js +1 -1
  298. package/dist/esm/br-table-row.entry.js +1 -1
  299. package/dist/esm/br-table.entry.js +1 -1
  300. package/dist/esm/br-tag.entry.js +2 -2
  301. package/dist/esm/br-textarea.entry.js +8 -15
  302. package/dist/esm/br-textarea.entry.js.map +1 -1
  303. package/dist/esm/br-tooltip.entry.js +18 -28
  304. package/dist/esm/br-tooltip.entry.js.map +1 -1
  305. package/dist/esm/br-upload.entry.js +2 -3
  306. package/dist/esm/br-upload.entry.js.map +1 -1
  307. package/dist/esm/index-DmA0bHaX.js +4 -0
  308. package/dist/esm/loader.js +1 -1
  309. package/dist/esm/webcomponents.js +1 -1
  310. package/dist/hydrate/index.js +411 -347
  311. package/dist/hydrate/index.mjs +411 -347
  312. package/dist/types/components/avatar/avatar.d.ts +63 -27
  313. package/dist/types/components/card/card.d.ts +44 -0
  314. package/dist/types/components.d.ts +73 -32
  315. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
  316. package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -1
  317. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  318. package/dist/webcomponents/br-card.entry.esm.js.map +1 -0
  319. package/dist/webcomponents/br-checkbox.entry.esm.js.map +1 -1
  320. package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
  321. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  322. package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
  323. package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -1
  324. package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -1
  325. package/dist/webcomponents/br-input.br-radio.entry.esm.js.map +1 -1
  326. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  327. package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
  328. package/dist/webcomponents/br-magic-button.entry.esm.js.map +1 -1
  329. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  330. package/dist/webcomponents/br-select.entry.esm.js.map +1 -1
  331. package/dist/webcomponents/br-step-item.entry.esm.js.map +1 -1
  332. package/dist/webcomponents/br-step.entry.esm.js.map +1 -1
  333. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  334. package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -1
  335. package/dist/webcomponents/br-tab.entry.esm.js.map +1 -1
  336. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  337. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  338. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
  339. package/dist/webcomponents/{p-b16a7896.entry.js → p-096b0875.entry.js} +28 -40
  340. package/dist/webcomponents/{p-b16a7896.entry.js.map → p-096b0875.entry.js.map} +1 -1
  341. package/dist/webcomponents/{p-64545afe.entry.js → p-0fe0dcc1.entry.js} +5 -5
  342. package/dist/webcomponents/{p-744eb116.entry.js → p-16f8e426.entry.js} +15 -15
  343. package/dist/webcomponents/{p-67e47dd0.entry.js → p-1d018f30.entry.js} +4 -4
  344. package/dist/webcomponents/{p-d7a4225f.entry.js → p-22682cde.entry.js} +19 -24
  345. package/dist/webcomponents/p-22682cde.entry.js.map +1 -0
  346. package/dist/webcomponents/{p-c966ab17.entry.js → p-24f6adad.entry.js} +28 -35
  347. package/dist/webcomponents/p-24f6adad.entry.js.map +1 -0
  348. package/dist/webcomponents/{p-4f41615a.entry.js → p-2a407917.entry.js} +7 -7
  349. package/dist/webcomponents/{p-d7265a28.entry.js → p-3615200c.entry.js} +11 -10
  350. package/dist/webcomponents/p-3615200c.entry.js.map +1 -0
  351. package/dist/webcomponents/{p-0d46ca85.entry.js → p-46f1f54c.entry.js} +25 -30
  352. package/dist/webcomponents/p-46f1f54c.entry.js.map +1 -0
  353. package/dist/webcomponents/{p-07f5518d.entry.js → p-4b3042fb.entry.js} +44 -53
  354. package/dist/webcomponents/p-4b3042fb.entry.js.map +1 -0
  355. package/dist/webcomponents/{p-db84202e.entry.js → p-502c9692.entry.js} +4 -4
  356. package/dist/webcomponents/{p-6fcaf560.entry.js → p-62ac038c.entry.js} +44 -57
  357. package/dist/webcomponents/p-62ac038c.entry.js.map +1 -0
  358. package/dist/webcomponents/{p-59f07375.entry.js → p-70d4da25.entry.js} +10 -10
  359. package/dist/webcomponents/{p-b7c58efc.entry.js → p-761f7798.entry.js} +7 -7
  360. package/dist/webcomponents/{p-df308ecd.entry.js → p-83df407a.entry.js} +15 -17
  361. package/dist/webcomponents/p-83df407a.entry.js.map +1 -0
  362. package/dist/webcomponents/{p-25addf8c.entry.js → p-88bfa633.entry.js} +4 -4
  363. package/dist/webcomponents/{p-08702123.entry.js → p-8ab5744a.entry.js} +18 -24
  364. package/dist/webcomponents/{p-08702123.entry.js.map → p-8ab5744a.entry.js.map} +1 -1
  365. package/dist/webcomponents/{p-8dba2e0e.entry.js → p-8b15dfc8.entry.js} +114 -128
  366. package/dist/webcomponents/p-8b15dfc8.entry.js.map +1 -0
  367. package/dist/webcomponents/{p-02d3c9c1.entry.js → p-8b24abe6.entry.js} +40 -50
  368. package/dist/webcomponents/p-8b24abe6.entry.js.map +1 -0
  369. package/dist/webcomponents/{p-2190e7a9.entry.js → p-90abf633.entry.js} +5 -6
  370. package/dist/webcomponents/p-90abf633.entry.js.map +1 -0
  371. package/dist/webcomponents/{p-1457ba7e.entry.js → p-94afd91b.entry.js} +10 -9
  372. package/dist/webcomponents/p-94afd91b.entry.js.map +1 -0
  373. package/dist/webcomponents/{p-fb3e3276.entry.js → p-9ed0a45f.entry.js} +9 -8
  374. package/dist/webcomponents/p-9ed0a45f.entry.js.map +1 -0
  375. package/dist/webcomponents/{p-8b4d5bf1.entry.js → p-9f9f80c1.entry.js} +2 -2
  376. package/dist/webcomponents/{p-a9af8d3e.entry.js → p-a802ca08.entry.js} +13 -14
  377. package/dist/webcomponents/p-a802ca08.entry.js.map +1 -0
  378. package/dist/webcomponents/{p-e5b33b7e.entry.js → p-abf81334.entry.js} +15 -19
  379. package/dist/webcomponents/{p-e5b33b7e.entry.js.map → p-abf81334.entry.js.map} +1 -1
  380. package/dist/webcomponents/{p-a06b7d9d.entry.js → p-ac4ce40c.entry.js} +30 -44
  381. package/dist/webcomponents/{p-a06b7d9d.entry.js.map → p-ac4ce40c.entry.js.map} +1 -1
  382. package/dist/webcomponents/{p-9e1743b6.entry.js → p-b019dfca.entry.js} +7 -7
  383. package/dist/webcomponents/{p-f7a210a8.entry.js → p-b565e6e5.entry.js} +4 -4
  384. package/dist/webcomponents/{p-33ab56d5.entry.js → p-b600b95e.entry.js} +18 -21
  385. package/dist/webcomponents/p-b600b95e.entry.js.map +1 -0
  386. package/dist/webcomponents/{p-41443414.entry.js → p-bbd38dd7.entry.js} +4 -4
  387. package/dist/webcomponents/{p-cbaac66c.entry.js → p-cac6afba.entry.js} +29 -37
  388. package/dist/webcomponents/{p-cbaac66c.entry.js.map → p-cac6afba.entry.js.map} +1 -1
  389. package/dist/webcomponents/{p-ac0f37e9.entry.js → p-d549a87b.entry.js} +4 -4
  390. package/dist/webcomponents/{p-51cc97aa.entry.js → p-deb094fb.entry.js} +4 -4
  391. package/dist/webcomponents/{p-3350d161.entry.js → p-df6e707a.entry.js} +116 -66
  392. package/dist/webcomponents/p-df6e707a.entry.js.map +1 -0
  393. package/dist/webcomponents/p-ee9fe4a2.entry.js +119 -0
  394. package/dist/webcomponents/p-ee9fe4a2.entry.js.map +1 -0
  395. package/dist/webcomponents/{p-238a6399.entry.js → p-f1738ae0.entry.js} +16 -17
  396. package/dist/webcomponents/p-f1738ae0.entry.js.map +1 -0
  397. package/dist/webcomponents/webcomponents.esm.js +15 -15
  398. package/dist/webcomponents.html-custom-data.json +13 -5
  399. package/package.json +1 -1
  400. package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
  401. package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
  402. package/dist/components/p-1eKV5oxP.js.map +0 -1
  403. package/dist/components/p-B-uKqjsz.js.map +0 -1
  404. package/dist/components/p-B3u7t9TB.js.map +0 -1
  405. package/dist/components/p-BU5QW70m.js.map +0 -1
  406. package/dist/components/p-CwEkkt16.js.map +0 -1
  407. package/dist/components/p-DIPMDb5E.js +0 -55
  408. package/dist/components/p-DIPMDb5E.js.map +0 -1
  409. package/dist/components/p-DqQ_qkzV.js.map +0 -1
  410. package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
  411. package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
  412. package/dist/webcomponents/p-02d3c9c1.entry.js.map +0 -1
  413. package/dist/webcomponents/p-07f5518d.entry.js.map +0 -1
  414. package/dist/webcomponents/p-0d46ca85.entry.js.map +0 -1
  415. package/dist/webcomponents/p-1457ba7e.entry.js.map +0 -1
  416. package/dist/webcomponents/p-2190e7a9.entry.js.map +0 -1
  417. package/dist/webcomponents/p-238a6399.entry.js.map +0 -1
  418. package/dist/webcomponents/p-3350d161.entry.js.map +0 -1
  419. package/dist/webcomponents/p-33ab56d5.entry.js.map +0 -1
  420. package/dist/webcomponents/p-6fcaf560.entry.js.map +0 -1
  421. package/dist/webcomponents/p-8dba2e0e.entry.js.map +0 -1
  422. package/dist/webcomponents/p-DIPMDb5E.js +0 -55
  423. package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
  424. package/dist/webcomponents/p-a9af8d3e.entry.js.map +0 -1
  425. package/dist/webcomponents/p-c966ab17.entry.js.map +0 -1
  426. package/dist/webcomponents/p-d7265a28.entry.js.map +0 -1
  427. package/dist/webcomponents/p-d7a4225f.entry.js.map +0 -1
  428. package/dist/webcomponents/p-df308ecd.entry.js.map +0 -1
  429. package/dist/webcomponents/p-fb3e3276.entry.js.map +0 -1
  430. /package/dist/components/{p-DoUCJxLj.js.map → p-ssSt5UuQ.js.map} +0 -0
  431. /package/dist/components/{p-0V7YvY_S.js.map → p-xvM_htUS.js.map} +0 -0
  432. /package/dist/webcomponents/{p-64545afe.entry.js.map → p-0fe0dcc1.entry.js.map} +0 -0
  433. /package/dist/webcomponents/{p-744eb116.entry.js.map → p-16f8e426.entry.js.map} +0 -0
  434. /package/dist/webcomponents/{p-67e47dd0.entry.js.map → p-1d018f30.entry.js.map} +0 -0
  435. /package/dist/webcomponents/{p-4f41615a.entry.js.map → p-2a407917.entry.js.map} +0 -0
  436. /package/dist/webcomponents/{p-db84202e.entry.js.map → p-502c9692.entry.js.map} +0 -0
  437. /package/dist/webcomponents/{p-59f07375.entry.js.map → p-70d4da25.entry.js.map} +0 -0
  438. /package/dist/webcomponents/{p-b7c58efc.entry.js.map → p-761f7798.entry.js.map} +0 -0
  439. /package/dist/webcomponents/{p-25addf8c.entry.js.map → p-88bfa633.entry.js.map} +0 -0
  440. /package/dist/webcomponents/{p-8b4d5bf1.entry.js.map → p-9f9f80c1.entry.js.map} +0 -0
  441. /package/dist/webcomponents/{p-9e1743b6.entry.js.map → p-b019dfca.entry.js.map} +0 -0
  442. /package/dist/webcomponents/{p-f7a210a8.entry.js.map → p-b565e6e5.entry.js.map} +0 -0
  443. /package/dist/webcomponents/{p-41443414.entry.js.map → p-bbd38dd7.entry.js.map} +0 -0
  444. /package/dist/webcomponents/{p-ac0f37e9.entry.js.map → p-d549a87b.entry.js.map} +0 -0
  445. /package/dist/webcomponents/{p-51cc97aa.entry.js.map → p-deb094fb.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"br-divider.entry.cjs.js","mappings":"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","names":["Helpers","h","Host"],"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-start {\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-end {\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-start::after,\n .divider-center::before,\n .divider-center::after,\n .divider-end::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-start::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-end::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, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\ntype DividerOrientation = 'horizontal' | 'vertical'\ntype DividerThickness = 'small' | 'medium' | 'large'\ntype DividerBorderStyle = 'dashed' | 'solid'\ntype DividerAlign = 'start' | 'center' | 'end'\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 /**\n * ID personalizado para o elemento, útil para acessibilidade e identificação única.\n * Se não for fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define a orientação do divisor.\n * Pode ser 'horizontal' ou 'vertical'.\n * Caso seja usado como vertical, o divider deve ser colocado dentro de um container com altura definida.\n * @default horizontal\n */\n @Prop({ reflect: true }) orientation: DividerOrientation = 'horizontal'\n\n /**\n * Define a espessura do divisor.\n * Pode ser 'small', 'medium' ou 'large'.\n * @default small\n */\n @Prop({ reflect: true }) thickness: DividerThickness = 'small'\n\n /**\n * Define o estilo da borda do divisor.\n * Pode ser 'dashed' ou 'solid'.\n * @default solid\n */\n @Prop({ reflect: true }) borderStyle: DividerBorderStyle = 'solid'\n\n /**\n * Define se o divisor deve ser exibido no modo escuro.\n * @default false\n */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /**\n * Cor do divisor.\n * Pode ser uma cor hexadecimal, RGB ou nome de cor CSS.\n * Se não for especificada, o divisor usará a cor padrão definida pelo tema.\n * @default null\n */\n @Prop({ reflect: true }) color: string = null\n\n /**\n * Alinhamento do conteúdo do divisor.\n * Pode ser 'start', 'center' ou 'end'.\n * @default undefined\n */\n @Prop() align: DividerAlign\n\n /**\n * Define se o divisor deve \"sangrar\" (bleed) nas laterais, ou seja, se deve ocupar toda a largura do container pai.\n * Isso é útil quando o divisor precisa se estender além do padding do container pai.\n * @default false\n */\n @Prop() bleed: boolean = false\n\n /**\n * Watcher para a cor do divisor.\n * Atualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\n * Isso permite que o divisor use cores personalizadas sem precisar de estilos adicionais.\n */\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.hasDefaultSlotContent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado após o componente ser renderizado no DOM.\n */\n componentDidLoad() {\n this.setVerticalOrientation()\n this.setBleed()\n this.updateColor()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetBleed()\n }\n /**\n * Configura o divisor para orientação vertical.\n * Se a orientação for 'vertical', cria um elemento <div> adicional para manter o layout correto.\n */\n private setVerticalOrientation() {\n if (this.orientation === 'vertical') {\n const div = document.createElement('div')\n div.className = 'vertical-divider'\n div.style.display = 'flex'\n div.style.height = '100%'\n this.el.insertAdjacentElement('beforebegin', div)\n div.appendChild(this.el)\n }\n }\n\n /**\n * Configura o divisor para sangrar (bleed) nas laterais.\n */\n private setBleed() {\n if (this.bleed) {\n this.applyMarginOnRootElement()\n window.addEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Remove o sangramento (bleed) do divisor.\n */\n private unsetBleed() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Verifica se o divisor tem conteúdo no slot padrão.\n * @returns true se o divisor tiver conteúdo no slot padrão, false caso contrário.\n */\n private hasDefaultSlotContent(): boolean {\n return this.el.innerHTML.trim() !== ''\n }\n\n /**\n * Determina o paddingLeft e paddingRight do elemento pai do host.\n * @returns Um objeto contendo os valores de paddingLeft e paddingRight do elemento pai do host.\n */\n private getHostParentPadding() {\n const hostParent = this.el.parentElement\n if (hostParent !== null) {\n const style = getComputedStyle(hostParent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n /**\n * Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\n * Isso é necessário quando o divisor está configurado para sangrar (bleed).\n */\n private applyMarginOnRootElement() {\n const { paddingLeft, paddingRight } = this.getHostParentPadding()\n const rootElement = this.el.shadowRoot?.querySelector('.br-divider')\n rootElement.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n /**\n * Define as classes CSS que serão aplicadas ao divisor.\n * @returns Uma string contendo as classes CSS que serão aplicadas ao divisor.\n */\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n /**\n * Renderiza o divisor quando há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderDefaultSlotDivider() {\n return (\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 }\n\n /**\n * Renderiza o divisor quando não há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderStandardDivider() {\n return <hr class={this.getCssClassMap()} />\n }\n\n /**\n * Renderiza o divisor.\n * @returns JSX.Element\n */\n render() {\n return <Host>{this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider()}</Host>\n }\n}\n"],"version":3}
1
+ {"file":"br-divider.entry.cjs.js","mappings":"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","names":["Helpers","h","Host"],"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-start {\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-end {\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-start::after,\n .divider-center::before,\n .divider-center::after,\n .divider-end::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-start::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-end::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, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\ntype DividerOrientation = 'horizontal' | 'vertical'\ntype DividerThickness = 'small' | 'medium' | 'large'\ntype DividerBorderStyle = 'dashed' | 'solid'\ntype DividerAlign = 'start' | 'center' | 'end'\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 /**\n * ID personalizado para o elemento, útil para acessibilidade e identificação única.\n * Se não for fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define a orientação do divisor.\n * Pode ser 'horizontal' ou 'vertical'.\n * Caso seja usado como vertical, o divider deve ser colocado dentro de um container com altura definida.\n * @default horizontal\n */\n @Prop({ reflect: true }) orientation: DividerOrientation = 'horizontal'\n\n /**\n * Define a espessura do divisor.\n * Pode ser 'small', 'medium' ou 'large'.\n * @default small\n */\n @Prop({ reflect: true }) thickness: DividerThickness = 'small'\n\n /**\n * Define o estilo da borda do divisor.\n * Pode ser 'dashed' ou 'solid'.\n * @default solid\n */\n @Prop({ reflect: true }) borderStyle: DividerBorderStyle = 'solid'\n\n /**\n * Define se o divisor deve ser exibido no modo escuro.\n * @default false\n */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /**\n * Cor do divisor.\n * Pode ser uma cor hexadecimal, RGB ou nome de cor CSS.\n * Se não for especificada, o divisor usará a cor padrão definida pelo tema.\n * @default null\n */\n @Prop({ reflect: true }) color: string = null\n\n /**\n * Alinhamento do conteúdo do divisor.\n * Pode ser 'start', 'center' ou 'end'.\n * @default undefined\n */\n @Prop() align: DividerAlign\n\n /**\n * Define se o divisor deve \"sangrar\" (bleed) nas laterais, ou seja, se deve ocupar toda a largura do container pai.\n * Isso é útil quando o divisor precisa se estender além do padding do container pai.\n * @default false\n */\n @Prop() bleed: boolean = false\n\n /**\n * Watcher para a cor do divisor.\n * Atualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\n * Isso permite que o divisor use cores personalizadas sem precisar de estilos adicionais.\n */\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.hasDefaultSlotContent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado após o componente ser renderizado no DOM.\n */\n componentDidLoad() {\n this.setVerticalOrientation()\n this.setBleed()\n this.updateColor()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetBleed()\n }\n /**\n * Configura o divisor para orientação vertical.\n * Se a orientação for 'vertical', cria um elemento <div> adicional para manter o layout correto.\n */\n private setVerticalOrientation() {\n if (this.orientation === 'vertical') {\n const div = document.createElement('div')\n div.className = 'vertical-divider'\n div.style.display = 'flex'\n div.style.height = '100%'\n this.el.insertAdjacentElement('beforebegin', div)\n div.appendChild(this.el)\n }\n }\n\n /**\n * Configura o divisor para sangrar (bleed) nas laterais.\n */\n private setBleed() {\n if (this.bleed) {\n this.applyMarginOnRootElement()\n window.addEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Remove o sangramento (bleed) do divisor.\n */\n private unsetBleed() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Verifica se o divisor tem conteúdo no slot padrão.\n * @returns true se o divisor tiver conteúdo no slot padrão, false caso contrário.\n */\n private hasDefaultSlotContent(): boolean {\n return this.el.innerHTML.trim() !== ''\n }\n\n /**\n * Determina o paddingLeft e paddingRight do elemento pai do host.\n * @returns Um objeto contendo os valores de paddingLeft e paddingRight do elemento pai do host.\n */\n private getHostParentPadding() {\n const hostParent = this.el.parentElement\n if (hostParent !== null) {\n const style = getComputedStyle(hostParent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n /**\n * Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\n * Isso é necessário quando o divisor está configurado para sangrar (bleed).\n */\n private applyMarginOnRootElement() {\n const { paddingLeft, paddingRight } = this.getHostParentPadding()\n const rootElement = this.el.shadowRoot?.querySelector('.br-divider')\n rootElement.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n /**\n * Define as classes CSS que serão aplicadas ao divisor.\n * @returns Uma string contendo as classes CSS que serão aplicadas ao divisor.\n */\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n /**\n * Renderiza o divisor quando há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderDefaultSlotDivider() {\n return (\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 }\n\n /**\n * Renderiza o divisor quando não há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderStandardDivider() {\n return <hr class={this.getCssClassMap()} />\n }\n\n /**\n * Renderiza o divisor.\n * @returns JSX.Element\n */\n render() {\n return <Host>{this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider()}</Host>\n }\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"version":3,"file":"br-divider.entry.cjs.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-start {\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-end {\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-start::after,\n .divider-center::before,\n .divider-center::after,\n .divider-end::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-start::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-end::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, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\ntype DividerOrientation = 'horizontal' | 'vertical'\ntype DividerThickness = 'small' | 'medium' | 'large'\ntype DividerBorderStyle = 'dashed' | 'solid'\ntype DividerAlign = 'start' | 'center' | 'end'\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 /**\n * ID personalizado para o elemento, útil para acessibilidade e identificação única.\n * Se não for fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define a orientação do divisor.\n * Pode ser 'horizontal' ou 'vertical'.\n * Caso seja usado como vertical, o divider deve ser colocado dentro de um container com altura definida.\n * @default horizontal\n */\n @Prop({ reflect: true }) orientation: DividerOrientation = 'horizontal'\n\n /**\n * Define a espessura do divisor.\n * Pode ser 'small', 'medium' ou 'large'.\n * @default small\n */\n @Prop({ reflect: true }) thickness: DividerThickness = 'small'\n\n /**\n * Define o estilo da borda do divisor.\n * Pode ser 'dashed' ou 'solid'.\n * @default solid\n */\n @Prop({ reflect: true }) borderStyle: DividerBorderStyle = 'solid'\n\n /**\n * Define se o divisor deve ser exibido no modo escuro.\n * @default false\n */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /**\n * Cor do divisor.\n * Pode ser uma cor hexadecimal, RGB ou nome de cor CSS.\n * Se não for especificada, o divisor usará a cor padrão definida pelo tema.\n * @default null\n */\n @Prop({ reflect: true }) color: string = null\n\n /**\n * Alinhamento do conteúdo do divisor.\n * Pode ser 'start', 'center' ou 'end'.\n * @default undefined\n */\n @Prop() align: DividerAlign\n\n /**\n * Define se o divisor deve \"sangrar\" (bleed) nas laterais, ou seja, se deve ocupar toda a largura do container pai.\n * Isso é útil quando o divisor precisa se estender além do padding do container pai.\n * @default false\n */\n @Prop() bleed: boolean = false\n\n /**\n * Watcher para a cor do divisor.\n * Atualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\n * Isso permite que o divisor use cores personalizadas sem precisar de estilos adicionais.\n */\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.hasDefaultSlotContent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado após o componente ser renderizado no DOM.\n */\n componentDidLoad() {\n this.setVerticalOrientation()\n this.setBleed()\n this.updateColor()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetBleed()\n }\n /**\n * Configura o divisor para orientação vertical.\n * Se a orientação for 'vertical', cria um elemento <div> adicional para manter o layout correto.\n */\n private setVerticalOrientation() {\n if (this.orientation === 'vertical') {\n const div = document.createElement('div')\n div.className = 'vertical-divider'\n div.style.display = 'flex'\n div.style.height = '100%'\n this.el.insertAdjacentElement('beforebegin', div)\n div.appendChild(this.el)\n }\n }\n\n /**\n * Configura o divisor para sangrar (bleed) nas laterais.\n */\n private setBleed() {\n if (this.bleed) {\n this.applyMarginOnRootElement()\n window.addEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Remove o sangramento (bleed) do divisor.\n */\n private unsetBleed() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Verifica se o divisor tem conteúdo no slot padrão.\n * @returns true se o divisor tiver conteúdo no slot padrão, false caso contrário.\n */\n private hasDefaultSlotContent(): boolean {\n return this.el.innerHTML.trim() !== ''\n }\n\n /**\n * Determina o paddingLeft e paddingRight do elemento pai do host.\n * @returns Um objeto contendo os valores de paddingLeft e paddingRight do elemento pai do host.\n */\n private getHostParentPadding() {\n const hostParent = this.el.parentElement\n if (hostParent !== null) {\n const style = getComputedStyle(hostParent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n /**\n * Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\n * Isso é necessário quando o divisor está configurado para sangrar (bleed).\n */\n private applyMarginOnRootElement() {\n const { paddingLeft, paddingRight } = this.getHostParentPadding()\n const rootElement = this.el.shadowRoot?.querySelector('.br-divider')\n rootElement.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n /**\n * Define as classes CSS que serão aplicadas ao divisor.\n * @returns Uma string contendo as classes CSS que serão aplicadas ao divisor.\n */\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n /**\n * Renderiza o divisor quando há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderDefaultSlotDivider() {\n return (\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 }\n\n /**\n * Renderiza o divisor quando não há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderStandardDivider() {\n return <hr class={this.getCssClassMap()} />\n }\n\n /**\n * Renderiza o divisor.\n * @returns JSX.Element\n */\n render() {\n return <Host>{this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider()}</Host>\n }\n}\n"],"names":["Helpers","h","Host"],"mappings":";;;;;;;;;AAAA,MAAM,UAAU,GAAG,k14DAAk14D;;MCmBx14D,OAAO,GAAA,MAAA;AALpB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAQE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAWA,eAAO,CAAC,gBAAgB,EAAE;AAE/E;;;;;AAKG;AACsB,QAAA,IAAW,CAAA,WAAA,GAAuB,YAAY;AAEvE;;;;AAIG;AACsB,QAAA,IAAS,CAAA,SAAA,GAAqB,OAAO;AAE9D;;;;AAIG;AACsB,QAAA,IAAW,CAAA,WAAA,GAAuB,OAAO;AAElE;;;AAGG;AACsB,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK;AAEpD;;;;;AAKG;AACsB,QAAA,IAAK,CAAA,KAAA,GAAW,IAAI;AAS7C;;;;AAIG;AACK,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK;AAgJ/B;AA9IC;;;;AAIG;IAEH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC;;AAGzD;;;AAGG;IACH,iBAAiB,GAAA;QACf,IAAI,CAAC,qBAAqB,EAAE;;AAG9B;;;AAGG;IACH,gBAAgB,GAAA;QACd,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,WAAW,EAAE;;AAGpB;;;AAGG;IACH,oBAAoB,GAAA;QAClB,IAAI,CAAC,UAAU,EAAE;;AAEnB;;;AAGG;IACK,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;YACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,YAAA,GAAG,CAAC,SAAS,GAAG,kBAAkB;AAClC,YAAA,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC1B,YAAA,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;YACzB,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,aAAa,EAAE,GAAG,CAAC;AACjD,YAAA,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;;;AAI5B;;AAEG;IACK,QAAQ,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;AAI/E;;AAEG;IACK,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;AAIlF;;;AAGG;IACK,qBAAqB,GAAA;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;;AAGxC;;;AAGG;IACK,oBAAoB,GAAA;AAC1B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AACxC,QAAA,IAAI,UAAU,KAAK,IAAI,EAAE;AACvB,YAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC;AAC1C,YAAA,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;;QAErG,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;;AAG5C;;;AAGG;IACK,wBAAwB,GAAA;;QAC9B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACjE,QAAA,MAAM,WAAW,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,aAAa,CAAC;AACpE,QAAA,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA,cAAA,EAAiB,WAAW,CAAA,mBAAA,EAAsB,YAAY,GAAG,CAAC,CAAA,GAAA,CAAK,CAAC;;AAG5G;;;AAGG;IACK,cAAc,GAAA;AACpB,QAAA,OAAO,CAAsB,mBAAA,EAAA,IAAI,CAAC,KAAK,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAI,CAAA,EAAA,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,EAAE,EAAE;;AAG3I;;;AAGG;IACK,wBAAwB,GAAA;QAC9B,QACEC,OACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,WAAW,sBACE,IAAI,CAAC,WAAW,EACjB,iBAAA,EAAA,IAAI,CAAC,QAAQ,EAAA,EAE9BA,OAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAA,EACrBA,OAAa,CAAA,MAAA,EAAA,IAAA,CAAA,CACR,CACH;;AAIV;;;AAGG;IACK,qBAAqB,GAAA;AAC3B,QAAA,OAAOA,OAAA,CAAA,IAAA,EAAA,EAAI,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,GAAI;;AAG7C;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,OAAOA,OAAA,CAACC,UAAI,EAAE,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAQ;;;;;;;;;;;"}
1
+ {"version":3,"file":"br-divider.entry.cjs.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-start {\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-end {\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-start::after,\n .divider-center::before,\n .divider-center::after,\n .divider-end::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-start::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-end::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, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\ntype DividerOrientation = 'horizontal' | 'vertical'\ntype DividerThickness = 'small' | 'medium' | 'large'\ntype DividerBorderStyle = 'dashed' | 'solid'\ntype DividerAlign = 'start' | 'center' | 'end'\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 /**\n * ID personalizado para o elemento, útil para acessibilidade e identificação única.\n * Se não for fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define a orientação do divisor.\n * Pode ser 'horizontal' ou 'vertical'.\n * Caso seja usado como vertical, o divider deve ser colocado dentro de um container com altura definida.\n * @default horizontal\n */\n @Prop({ reflect: true }) orientation: DividerOrientation = 'horizontal'\n\n /**\n * Define a espessura do divisor.\n * Pode ser 'small', 'medium' ou 'large'.\n * @default small\n */\n @Prop({ reflect: true }) thickness: DividerThickness = 'small'\n\n /**\n * Define o estilo da borda do divisor.\n * Pode ser 'dashed' ou 'solid'.\n * @default solid\n */\n @Prop({ reflect: true }) borderStyle: DividerBorderStyle = 'solid'\n\n /**\n * Define se o divisor deve ser exibido no modo escuro.\n * @default false\n */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /**\n * Cor do divisor.\n * Pode ser uma cor hexadecimal, RGB ou nome de cor CSS.\n * Se não for especificada, o divisor usará a cor padrão definida pelo tema.\n * @default null\n */\n @Prop({ reflect: true }) color: string = null\n\n /**\n * Alinhamento do conteúdo do divisor.\n * Pode ser 'start', 'center' ou 'end'.\n * @default undefined\n */\n @Prop() align: DividerAlign\n\n /**\n * Define se o divisor deve \"sangrar\" (bleed) nas laterais, ou seja, se deve ocupar toda a largura do container pai.\n * Isso é útil quando o divisor precisa se estender além do padding do container pai.\n * @default false\n */\n @Prop() bleed: boolean = false\n\n /**\n * Watcher para a cor do divisor.\n * Atualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\n * Isso permite que o divisor use cores personalizadas sem precisar de estilos adicionais.\n */\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.hasDefaultSlotContent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado após o componente ser renderizado no DOM.\n */\n componentDidLoad() {\n this.setVerticalOrientation()\n this.setBleed()\n this.updateColor()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetBleed()\n }\n /**\n * Configura o divisor para orientação vertical.\n * Se a orientação for 'vertical', cria um elemento <div> adicional para manter o layout correto.\n */\n private setVerticalOrientation() {\n if (this.orientation === 'vertical') {\n const div = document.createElement('div')\n div.className = 'vertical-divider'\n div.style.display = 'flex'\n div.style.height = '100%'\n this.el.insertAdjacentElement('beforebegin', div)\n div.appendChild(this.el)\n }\n }\n\n /**\n * Configura o divisor para sangrar (bleed) nas laterais.\n */\n private setBleed() {\n if (this.bleed) {\n this.applyMarginOnRootElement()\n window.addEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Remove o sangramento (bleed) do divisor.\n */\n private unsetBleed() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Verifica se o divisor tem conteúdo no slot padrão.\n * @returns true se o divisor tiver conteúdo no slot padrão, false caso contrário.\n */\n private hasDefaultSlotContent(): boolean {\n return this.el.innerHTML.trim() !== ''\n }\n\n /**\n * Determina o paddingLeft e paddingRight do elemento pai do host.\n * @returns Um objeto contendo os valores de paddingLeft e paddingRight do elemento pai do host.\n */\n private getHostParentPadding() {\n const hostParent = this.el.parentElement\n if (hostParent !== null) {\n const style = getComputedStyle(hostParent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n /**\n * Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\n * Isso é necessário quando o divisor está configurado para sangrar (bleed).\n */\n private applyMarginOnRootElement() {\n const { paddingLeft, paddingRight } = this.getHostParentPadding()\n const rootElement = this.el.shadowRoot?.querySelector('.br-divider')\n rootElement.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n /**\n * Define as classes CSS que serão aplicadas ao divisor.\n * @returns Uma string contendo as classes CSS que serão aplicadas ao divisor.\n */\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n /**\n * Renderiza o divisor quando há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderDefaultSlotDivider() {\n return (\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 }\n\n /**\n * Renderiza o divisor quando não há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderStandardDivider() {\n return <hr class={this.getCssClassMap()} />\n }\n\n /**\n * Renderiza o divisor.\n * @returns JSX.Element\n */\n render() {\n return <Host>{this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider()}</Host>\n }\n}\n"],"names":["Helpers","h","Host"],"mappings":"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"}
@@ -5,7 +5,6 @@
5
5
  'use strict';
6
6
 
7
7
  var index = require('./index-DNnn1o_9.js');
8
- var tslib_es6 = require('./tslib.es6-CF44W9Bn.js');
9
8
 
10
9
  const dropdownCss = "*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;-moz-appearance:button;appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden]{display:none}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-.5);margin-right:calc(var(--grid-gutter)*-.5)}@media (min-width:576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}}@media (min-width:992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width:1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width:1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mt-1{margin-top:var(--spacing-scale-half)!important}.mb-1{margin-bottom:var(--spacing-scale-half)!important}.mr-2{margin-right:var(--spacing-scale-base)!important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1)!important}.ml-2{margin-left:var(--spacing-scale-base)!important}.mr-auto{margin-right:auto!important}.pt-half{padding-top:var(--spacing-scale-half)!important}.py-3{padding-bottom:var(--spacing-scale-2x)!important;padding-top:var(--spacing-scale-2x)!important}.py-4{padding-bottom:var(--spacing-scale-3x)!important;padding-top:var(--spacing-scale-3x)!important}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width:576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half);color:var(--interactive);text-decoration:none}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(var(--interactive-rgb),var(--hover))),to(rgba(var(--interactive-rgb),var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb),var(--hover)),rgba(var(--interactive-rgb),var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(var(--interactive-rgb),var(--pressed))),to(rgba(var(--interactive-rgb),var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb),var(--pressed)),rgba(var(--interactive-rgb),var(--pressed)))}button{cursor:pointer}img{max-width:100%;vertical-align:middle}ol,ul{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}.label,label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}.placeholder,::placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}.input,input,textarea{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.bg-blue-90{--background:var(--blue-90);background:var(--blue-90)!important}.bg-blue-80{--background:var(--blue-80);background:var(--blue-80)!important}.bg-blue-70{--background:var(--blue-70);background:var(--blue-70)!important}.bg-blue-60{--background:var(--blue-60);background:var(--blue-60)!important}.bg-blue-50{--background:var(--blue-50);background:var(--blue-50)!important}.bg-blue-40{--background:var(--blue-40);background:var(--blue-40)!important}.bg-blue-30{--background:var(--blue-30);background:var(--blue-30)!important}.bg-blue-20{--background:var(--blue-20);background:var(--blue-20)!important}.bg-blue-10{--background:var(--blue-10);background:var(--blue-10)!important}.bg-blue-5{--background:var(--blue-5);background:var(--blue-5)!important}.bg-blue-cool-90{--background:var(--blue-cool-90);background:var(--blue-cool-90)!important}.bg-blue-cool-80{--background:var(--blue-cool-80);background:var(--blue-cool-80)!important}.bg-blue-cool-70{--background:var(--blue-cool-70);background:var(--blue-cool-70)!important}.bg-blue-cool-60{--background:var(--blue-cool-60);background:var(--blue-cool-60)!important}.bg-blue-cool-50{--background:var(--blue-cool-50);background:var(--blue-cool-50)!important}.bg-blue-cool-40{--background:var(--blue-cool-40);background:var(--blue-cool-40)!important}.bg-blue-cool-30{--background:var(--blue-cool-30);background:var(--blue-cool-30)!important}.bg-blue-cool-20{--background:var(--blue-cool-20);background:var(--blue-cool-20)!important}.bg-blue-cool-10{--background:var(--blue-cool-10);background:var(--blue-cool-10)!important}.bg-blue-cool-5{--background:var(--blue-cool-5);background:var(--blue-cool-5)!important}.bg-blue-warm-90{--background:var(--blue-warm-90);background:var(--blue-warm-90)!important}.bg-blue-warm-80{--background:var(--blue-warm-80);background:var(--blue-warm-80)!important}.bg-blue-warm-70{--background:var(--blue-warm-70);background:var(--blue-warm-70)!important}.bg-blue-warm-60{--background:var(--blue-warm-60);background:var(--blue-warm-60)!important}.bg-blue-warm-50{--background:var(--blue-warm-50);background:var(--blue-warm-50)!important}.bg-blue-warm-40{--background:var(--blue-warm-40);background:var(--blue-warm-40)!important}.bg-blue-warm-30{--background:var(--blue-warm-30);background:var(--blue-warm-30)!important}.bg-blue-warm-20{--background:var(--blue-warm-20);background:var(--blue-warm-20)!important}.bg-blue-warm-10{--background:var(--blue-warm-10);background:var(--blue-warm-10)!important}.bg-blue-warm-5{--background:var(--blue-warm-5);background:var(--blue-warm-5)!important}.bg-blue-vivid-80{--background:var(--blue-vivid-80);background:var(--blue-vivid-80)!important}.bg-blue-vivid-70{--background:var(--blue-vivid-70);background:var(--blue-vivid-70)!important}.bg-blue-vivid-60{--background:var(--blue-vivid-60);background:var(--blue-vivid-60)!important}.bg-blue-vivid-50{--background:var(--blue-vivid-50);background:var(--blue-vivid-50)!important}.bg-blue-vivid-40{--background:var(--blue-vivid-40);background:var(--blue-vivid-40)!important}.bg-blue-vivid-30{--background:var(--blue-vivid-30);background:var(--blue-vivid-30)!important}.bg-blue-vivid-20{--background:var(--blue-vivid-20);background:var(--blue-vivid-20)!important}.bg-blue-vivid-10{--background:var(--blue-vivid-10);background:var(--blue-vivid-10)!important}.bg-blue-vivid-5{--background:var(--blue-vivid-5);background:var(--blue-vivid-5)!important}.bg-blue-cool-vivid-80{--background:var(--blue-cool-vivid-80);background:var(--blue-cool-vivid-80)!important}.bg-blue-cool-vivid-70{--background:var(--blue-cool-vivid-70);background:var(--blue-cool-vivid-70)!important}.bg-blue-cool-vivid-60{--background:var(--blue-cool-vivid-60);background:var(--blue-cool-vivid-60)!important}.bg-blue-cool-vivid-50{--background:var(--blue-cool-vivid-50);background:var(--blue-cool-vivid-50)!important}.bg-blue-cool-vivid-40{--background:var(--blue-cool-vivid-40);background:var(--blue-cool-vivid-40)!important}.bg-blue-cool-vivid-30{--background:var(--blue-cool-vivid-30);background:var(--blue-cool-vivid-30)!important}.bg-blue-cool-vivid-20{--background:var(--blue-cool-vivid-20);background:var(--blue-cool-vivid-20)!important}.bg-blue-cool-vivid-10{--background:var(--blue-cool-vivid-10);background:var(--blue-cool-vivid-10)!important}.bg-blue-cool-vivid-5{--background:var(--blue-cool-vivid-5);background:var(--blue-cool-vivid-5)!important}.bg-blue-warm-vivid-90{--background:var(--blue-warm-vivid-90);background:var(--blue-warm-vivid-90)!important}.bg-blue-warm-vivid-80{--background:var(--blue-warm-vivid-80);background:var(--blue-warm-vivid-80)!important}.bg-blue-warm-vivid-70{--background:var(--blue-warm-vivid-70);background:var(--blue-warm-vivid-70)!important}.bg-blue-warm-vivid-60{--background:var(--blue-warm-vivid-60);background:var(--blue-warm-vivid-60)!important}.bg-blue-warm-vivid-50{--background:var(--blue-warm-vivid-50);background:var(--blue-warm-vivid-50)!important}.bg-blue-warm-vivid-40{--background:var(--blue-warm-vivid-40);background:var(--blue-warm-vivid-40)!important}.bg-blue-warm-vivid-30{--background:var(--blue-warm-vivid-30);background:var(--blue-warm-vivid-30)!important}.bg-blue-warm-vivid-20{--background:var(--blue-warm-vivid-20);background:var(--blue-warm-vivid-20)!important}.bg-blue-warm-vivid-10{--background:var(--blue-warm-vivid-10);background:var(--blue-warm-vivid-10)!important}.bg-blue-warm-vivid-5{--background:var(--blue-warm-vivid-5);background:var(--blue-warm-vivid-5)!important}.bg-cyan-90{--background:var(--cyan-90);background:var(--cyan-90)!important}.bg-cyan-80{--background:var(--cyan-80);background:var(--cyan-80)!important}.bg-cyan-70{--background:var(--cyan-70);background:var(--cyan-70)!important}.bg-cyan-60{--background:var(--cyan-60);background:var(--cyan-60)!important}.bg-cyan-50{--background:var(--cyan-50);background:var(--cyan-50)!important}.bg-cyan-40{--background:var(--cyan-40);background:var(--cyan-40)!important}.bg-cyan-30{--background:var(--cyan-30);background:var(--cyan-30)!important}.bg-cyan-20{--background:var(--cyan-20);background:var(--cyan-20)!important}.bg-cyan-10{--background:var(--cyan-10);background:var(--cyan-10)!important}.bg-cyan-5{--background:var(--cyan-5);background:var(--cyan-5)!important}.bg-cyan-vivid-80{--background:var(--cyan-vivid-80);background:var(--cyan-vivid-80)!important}.bg-cyan-vivid-70{--background:var(--cyan-vivid-70);background:var(--cyan-vivid-70)!important}.bg-cyan-vivid-60{--background:var(--cyan-vivid-60);background:var(--cyan-vivid-60)!important}.bg-cyan-vivid-50{--background:var(--cyan-vivid-50);background:var(--cyan-vivid-50)!important}.bg-cyan-vivid-40{--background:var(--cyan-vivid-40);background:var(--cyan-vivid-40)!important}.bg-cyan-vivid-30{--background:var(--cyan-vivid-30);background:var(--cyan-vivid-30)!important}.bg-cyan-vivid-20{--background:var(--cyan-vivid-20);background:var(--cyan-vivid-20)!important}.bg-cyan-vivid-10{--background:var(--cyan-vivid-10);background:var(--cyan-vivid-10)!important}.bg-cyan-vivid-5{--background:var(--cyan-vivid-5);background:var(--cyan-vivid-5)!important}.bg-gold-90{--background:var(--gold-90);background:var(--gold-90)!important}.bg-gold-80{--background:var(--gold-80);background:var(--gold-80)!important}.bg-gold-70{--background:var(--gold-70);background:var(--gold-70)!important}.bg-gold-60{--background:var(--gold-60);background:var(--gold-60)!important}.bg-gold-50{--background:var(--gold-50);background:var(--gold-50)!important}.bg-gold-40{--background:var(--gold-40);background:var(--gold-40)!important}.bg-gold-30{--background:var(--gold-30);background:var(--gold-30)!important}.bg-gold-20{--background:var(--gold-20);background:var(--gold-20)!important}.bg-gold-10{--background:var(--gold-10);background:var(--gold-10)!important}.bg-gold-5{--background:var(--gold-5);background:var(--gold-5)!important}.bg-gold-vivid-80{--background:var(--gold-vivid-80);background:var(--gold-vivid-80)!important}.bg-gold-vivid-70{--background:var(--gold-vivid-70);background:var(--gold-vivid-70)!important}.bg-gold-vivid-60{--background:var(--gold-vivid-60);background:var(--gold-vivid-60)!important}.bg-gold-vivid-50{--background:var(--gold-vivid-50);background:var(--gold-vivid-50)!important}.bg-gold-vivid-40{--background:var(--gold-vivid-40);background:var(--gold-vivid-40)!important}.bg-gold-vivid-30{--background:var(--gold-vivid-30);background:var(--gold-vivid-30)!important}.bg-gold-vivid-20{--background:var(--gold-vivid-20);background:var(--gold-vivid-20)!important}.bg-gold-vivid-10{--background:var(--gold-vivid-10);background:var(--gold-vivid-10)!important}.bg-gold-vivid-5{--background:var(--gold-vivid-5);background:var(--gold-vivid-5)!important}.bg-gray-90{--background:var(--gray-90);background:var(--gray-90)!important}.bg-gray-80{--background:var(--gray-80);background:var(--gray-80)!important}.bg-gray-70{--background:var(--gray-70);background:var(--gray-70)!important}.bg-gray-60{--background:var(--gray-60);background:var(--gray-60)!important}.bg-gray-50{--background:var(--gray-50);background:var(--gray-50)!important}.bg-gray-40{--background:var(--gray-40);background:var(--gray-40)!important}.bg-gray-30{--background:var(--gray-30);background:var(--gray-30)!important}.bg-gray-20{--background:var(--gray-20);background:var(--gray-20)!important}.bg-gray-10{--background:var(--gray-10);background:var(--gray-10)!important}.bg-gray-5{--background:var(--gray-5);background:var(--gray-5)!important}.bg-gray-4{--background:var(--gray-4);background:var(--gray-4)!important}.bg-gray-3{--background:var(--gray-3);background:var(--gray-3)!important}.bg-gray-2{--background:var(--gray-2);background:var(--gray-2)!important}.bg-gray-1{--background:var(--gray-1);background:var(--gray-1)!important}.bg-gray-cool-90{--background:var(--gray-cool-90);background:var(--gray-cool-90)!important}.bg-gray-cool-80{--background:var(--gray-cool-80);background:var(--gray-cool-80)!important}.bg-gray-cool-70{--background:var(--gray-cool-70);background:var(--gray-cool-70)!important}.bg-gray-cool-60{--background:var(--gray-cool-60);background:var(--gray-cool-60)!important}.bg-gray-cool-50{--background:var(--gray-cool-50);background:var(--gray-cool-50)!important}.bg-gray-cool-40{--background:var(--gray-cool-40);background:var(--gray-cool-40)!important}.bg-gray-cool-30{--background:var(--gray-cool-30);background:var(--gray-cool-30)!important}.bg-gray-cool-20{--background:var(--gray-cool-20);background:var(--gray-cool-20)!important}.bg-gray-cool-10{--background:var(--gray-cool-10);background:var(--gray-cool-10)!important}.bg-gray-cool-5{--background:var(--gray-cool-5);background:var(--gray-cool-5)!important}.bg-gray-cool-4{--background:var(--gray-cool-4);background:var(--gray-cool-4)!important}.bg-gray-cool-3{--background:var(--gray-cool-3);background:var(--gray-cool-3)!important}.bg-gray-cool-2{--background:var(--gray-cool-2);background:var(--gray-cool-2)!important}.bg-gray-cool-1{--background:var(--gray-cool-1);background:var(--gray-cool-1)!important}.bg-gray-warm-90{--background:var(--gray-warm-90);background:var(--gray-warm-90)!important}.bg-gray-warm-80{--background:var(--gray-warm-80);background:var(--gray-warm-80)!important}.bg-gray-warm-70{--background:var(--gray-warm-70);background:var(--gray-warm-70)!important}.bg-gray-warm-60{--background:var(--gray-warm-60);background:var(--gray-warm-60)!important}.bg-gray-warm-50{--background:var(--gray-warm-50);background:var(--gray-warm-50)!important}.bg-gray-warm-40{--background:var(--gray-warm-40);background:var(--gray-warm-40)!important}.bg-gray-warm-30{--background:var(--gray-warm-30);background:var(--gray-warm-30)!important}.bg-gray-warm-20{--background:var(--gray-warm-20);background:var(--gray-warm-20)!important}.bg-gray-warm-10{--background:var(--gray-warm-10);background:var(--gray-warm-10)!important}.bg-gray-warm-5{--background:var(--gray-warm-5);background:var(--gray-warm-5)!important}.bg-gray-warm-4{--background:var(--gray-warm-4);background:var(--gray-warm-4)!important}.bg-gray-warm-3{--background:var(--gray-warm-3);background:var(--gray-warm-3)!important}.bg-gray-warm-2{--background:var(--gray-warm-2);background:var(--gray-warm-2)!important}.bg-gray-warm-1{--background:var(--gray-warm-1);background:var(--gray-warm-1)!important}.bg-green-90{--background:var(--green-90);background:var(--green-90)!important}.bg-green-80{--background:var(--green-80);background:var(--green-80)!important}.bg-green-70{--background:var(--green-70);background:var(--green-70)!important}.bg-green-60{--background:var(--green-60);background:var(--green-60)!important}.bg-green-50{--background:var(--green-50);background:var(--green-50)!important}.bg-green-40{--background:var(--green-40);background:var(--green-40)!important}.bg-green-30{--background:var(--green-30);background:var(--green-30)!important}.bg-green-20{--background:var(--green-20);background:var(--green-20)!important}.bg-green-10{--background:var(--green-10);background:var(--green-10)!important}.bg-green-5{--background:var(--green-5);background:var(--green-5)!important}.bg-green-cool-90{--background:var(--green-cool-90);background:var(--green-cool-90)!important}.bg-green-cool-80{--background:var(--green-cool-80);background:var(--green-cool-80)!important}.bg-green-cool-70{--background:var(--green-cool-70);background:var(--green-cool-70)!important}.bg-green-cool-60{--background:var(--green-cool-60);background:var(--green-cool-60)!important}.bg-green-cool-50{--background:var(--green-cool-50);background:var(--green-cool-50)!important}.bg-green-cool-40{--background:var(--green-cool-40);background:var(--green-cool-40)!important}.bg-green-cool-30{--background:var(--green-cool-30);background:var(--green-cool-30)!important}.bg-green-cool-20{--background:var(--green-cool-20);background:var(--green-cool-20)!important}.bg-green-cool-10{--background:var(--green-cool-10);background:var(--green-cool-10)!important}.bg-green-cool-5{--background:var(--green-cool-5);background:var(--green-cool-5)!important}.bg-green-warm-90{--background:var(--green-warm-90);background:var(--green-warm-90)!important}.bg-green-warm-80{--background:var(--green-warm-80);background:var(--green-warm-80)!important}.bg-green-warm-70{--background:var(--green-warm-70);background:var(--green-warm-70)!important}.bg-green-warm-60{--background:var(--green-warm-60);background:var(--green-warm-60)!important}.bg-green-warm-50{--background:var(--green-warm-50);background:var(--green-warm-50)!important}.bg-green-warm-40{--background:var(--green-warm-40);background:var(--green-warm-40)!important}.bg-green-warm-30{--background:var(--green-warm-30);background:var(--green-warm-30)!important}.bg-green-warm-20{--background:var(--green-warm-20);background:var(--green-warm-20)!important}.bg-green-warm-10{--background:var(--green-warm-10);background:var(--green-warm-10)!important}.bg-green-warm-5{--background:var(--green-warm-5);background:var(--green-warm-5)!important}.bg-green-vivid-80{--background:var(--green-vivid-80);background:var(--green-vivid-80)!important}.bg-green-vivid-70{--background:var(--green-vivid-70);background:var(--green-vivid-70)!important}.bg-green-vivid-60{--background:var(--green-vivid-60);background:var(--green-vivid-60)!important}.bg-green-vivid-50{--background:var(--green-vivid-50);background:var(--green-vivid-50)!important}.bg-green-vivid-40{--background:var(--green-vivid-40);background:var(--green-vivid-40)!important}.bg-green-vivid-30{--background:var(--green-vivid-30);background:var(--green-vivid-30)!important}.bg-green-vivid-20{--background:var(--green-vivid-20);background:var(--green-vivid-20)!important}.bg-green-vivid-10{--background:var(--green-vivid-10);background:var(--green-vivid-10)!important}.bg-green-vivid-5{--background:var(--green-vivid-5);background:var(--green-vivid-5)!important}.bg-green-cool-vivid-80{--background:var(--green-cool-vivid-80);background:var(--green-cool-vivid-80)!important}.bg-green-cool-vivid-70{--background:var(--green-cool-vivid-70);background:var(--green-cool-vivid-70)!important}.bg-green-cool-vivid-60{--background:var(--green-cool-vivid-60);background:var(--green-cool-vivid-60)!important}.bg-green-cool-vivid-50{--background:var(--green-cool-vivid-50);background:var(--green-cool-vivid-50)!important}.bg-green-cool-vivid-40{--background:var(--green-cool-vivid-40);background:var(--green-cool-vivid-40)!important}.bg-green-cool-vivid-30{--background:var(--green-cool-vivid-30);background:var(--green-cool-vivid-30)!important}.bg-green-cool-vivid-20{--background:var(--green-cool-vivid-20);background:var(--green-cool-vivid-20)!important}.bg-green-cool-vivid-10{--background:var(--green-cool-vivid-10);background:var(--green-cool-vivid-10)!important}.bg-green-cool-vivid-5{--background:var(--green-cool-vivid-5);background:var(--green-cool-vivid-5)!important}.bg-green-warm-vivid-80{--background:var(--green-warm-vivid-80);background:var(--green-warm-vivid-80)!important}.bg-green-warm-vivid-70{--background:var(--green-warm-vivid-70);background:var(--green-warm-vivid-70)!important}.bg-green-warm-vivid-60{--background:var(--green-warm-vivid-60);background:var(--green-warm-vivid-60)!important}.bg-green-warm-vivid-50{--background:var(--green-warm-vivid-50);background:var(--green-warm-vivid-50)!important}.bg-green-warm-vivid-40{--background:var(--green-warm-vivid-40);background:var(--green-warm-vivid-40)!important}.bg-green-warm-vivid-30{--background:var(--green-warm-vivid-30);background:var(--green-warm-vivid-30)!important}.bg-green-warm-vivid-20{--background:var(--green-warm-vivid-20);background:var(--green-warm-vivid-20)!important}.bg-green-warm-vivid-10{--background:var(--green-warm-vivid-10);background:var(--green-warm-vivid-10)!important}.bg-green-warm-vivid-5{--background:var(--green-warm-vivid-5);background:var(--green-warm-vivid-5)!important}.bg-indigo-90{--background:var(--indigo-90);background:var(--indigo-90)!important}.bg-indigo-80{--background:var(--indigo-80);background:var(--indigo-80)!important}.bg-indigo-70{--background:var(--indigo-70);background:var(--indigo-70)!important}.bg-indigo-60{--background:var(--indigo-60);background:var(--indigo-60)!important}.bg-indigo-50{--background:var(--indigo-50);background:var(--indigo-50)!important}.bg-indigo-40{--background:var(--indigo-40);background:var(--indigo-40)!important}.bg-indigo-30{--background:var(--indigo-30);background:var(--indigo-30)!important}.bg-indigo-20{--background:var(--indigo-20);background:var(--indigo-20)!important}.bg-indigo-10{--background:var(--indigo-10);background:var(--indigo-10)!important}.bg-indigo-5{--background:var(--indigo-5);background:var(--indigo-5)!important}.bg-indigo-cool-90{--background:var(--indigo-cool-90);background:var(--indigo-cool-90)!important}.bg-indigo-cool-80{--background:var(--indigo-cool-80);background:var(--indigo-cool-80)!important}.bg-indigo-cool-70{--background:var(--indigo-cool-70);background:var(--indigo-cool-70)!important}.bg-indigo-cool-60{--background:var(--indigo-cool-60);background:var(--indigo-cool-60)!important}.bg-indigo-cool-50{--background:var(--indigo-cool-50);background:var(--indigo-cool-50)!important}.bg-indigo-cool-40{--background:var(--indigo-cool-40);background:var(--indigo-cool-40)!important}.bg-indigo-cool-30{--background:var(--indigo-cool-30);background:var(--indigo-cool-30)!important}.bg-indigo-cool-20{--background:var(--indigo-cool-20);background:var(--indigo-cool-20)!important}.bg-indigo-cool-10{--background:var(--indigo-cool-10);background:var(--indigo-cool-10)!important}.bg-indigo-cool-5{--background:var(--indigo-cool-5);background:var(--indigo-cool-5)!important}.bg-indigo-warm-90{--background:var(--indigo-warm-90);background:var(--indigo-warm-90)!important}.bg-indigo-warm-80{--background:var(--indigo-warm-80);background:var(--indigo-warm-80)!important}.bg-indigo-warm-70{--background:var(--indigo-warm-70);background:var(--indigo-warm-70)!important}.bg-indigo-warm-60{--background:var(--indigo-warm-60);background:var(--indigo-warm-60)!important}.bg-indigo-warm-50{--background:var(--indigo-warm-50);background:var(--indigo-warm-50)!important}.bg-indigo-warm-40{--background:var(--indigo-warm-40);background:var(--indigo-warm-40)!important}.bg-indigo-warm-30{--background:var(--indigo-warm-30);background:var(--indigo-warm-30)!important}.bg-indigo-warm-20{--background:var(--indigo-warm-20);background:var(--indigo-warm-20)!important}.bg-indigo-warm-10{--background:var(--indigo-warm-10);background:var(--indigo-warm-10)!important}.bg-indigo-warm-5{--background:var(--indigo-warm-5);background:var(--indigo-warm-5)!important}.bg-indigo-vivid-80{--background:var(--indigo-vivid-80);background:var(--indigo-vivid-80)!important}.bg-indigo-vivid-70{--background:var(--indigo-vivid-70);background:var(--indigo-vivid-70)!important}.bg-indigo-vivid-60{--background:var(--indigo-vivid-60);background:var(--indigo-vivid-60)!important}.bg-indigo-vivid-50{--background:var(--indigo-vivid-50);background:var(--indigo-vivid-50)!important}.bg-indigo-vivid-40{--background:var(--indigo-vivid-40);background:var(--indigo-vivid-40)!important}.bg-indigo-vivid-30{--background:var(--indigo-vivid-30);background:var(--indigo-vivid-30)!important}.bg-indigo-vivid-20{--background:var(--indigo-vivid-20);background:var(--indigo-vivid-20)!important}.bg-indigo-vivid-10{--background:var(--indigo-vivid-10);background:var(--indigo-vivid-10)!important}.bg-indigo-vivid-5{--background:var(--indigo-vivid-5);background:var(--indigo-vivid-5)!important}.bg-indigo-cool-vivid-80{--background:var(--indigo-cool-vivid-80);background:var(--indigo-cool-vivid-80)!important}.bg-indigo-cool-vivid-70{--background:var(--indigo-cool-vivid-70);background:var(--indigo-cool-vivid-70)!important}.bg-indigo-cool-vivid-60{--background:var(--indigo-cool-vivid-60);background:var(--indigo-cool-vivid-60)!important}.bg-indigo-cool-vivid-50{--background:var(--indigo-cool-vivid-50);background:var(--indigo-cool-vivid-50)!important}.bg-indigo-cool-vivid-40{--background:var(--indigo-cool-vivid-40);background:var(--indigo-cool-vivid-40)!important}.bg-indigo-cool-vivid-30{--background:var(--indigo-cool-vivid-30);background:var(--indigo-cool-vivid-30)!important}.bg-indigo-cool-vivid-20{--background:var(--indigo-cool-vivid-20);background:var(--indigo-cool-vivid-20)!important}.bg-indigo-cool-vivid-10{--background:var(--indigo-cool-vivid-10);background:var(--indigo-cool-vivid-10)!important}.bg-indigo-cool-vivid-5{--background:var(--indigo-cool-vivid-5);background:var(--indigo-cool-vivid-5)!important}.bg-indigo-warm-vivid-80{--background:var(--indigo-warm-vivid-80);background:var(--indigo-warm-vivid-80)!important}.bg-indigo-warm-vivid-70{--background:var(--indigo-warm-vivid-70);background:var(--indigo-warm-vivid-70)!important}.bg-indigo-warm-vivid-60{--background:var(--indigo-warm-vivid-60);background:var(--indigo-warm-vivid-60)!important}.bg-indigo-warm-vivid-50{--background:var(--indigo-warm-vivid-50);background:var(--indigo-warm-vivid-50)!important}.bg-indigo-warm-vivid-40{--background:var(--indigo-warm-vivid-40);background:var(--indigo-warm-vivid-40)!important}.bg-indigo-warm-vivid-30{--background:var(--indigo-warm-vivid-30);background:var(--indigo-warm-vivid-30)!important}.bg-indigo-warm-vivid-20{--background:var(--indigo-warm-vivid-20);background:var(--indigo-warm-vivid-20)!important}.bg-indigo-warm-vivid-10{--background:var(--indigo-warm-vivid-10);background:var(--indigo-warm-vivid-10)!important}.bg-indigo-warm-vivid-5{--background:var(--indigo-warm-vivid-5);background:var(--indigo-warm-vivid-5)!important}.bg-magenta-90{--background:var(--magenta-90);background:var(--magenta-90)!important}.bg-magenta-80{--background:var(--magenta-80);background:var(--magenta-80)!important}.bg-magenta-70{--background:var(--magenta-70);background:var(--magenta-70)!important}.bg-magenta-60{--background:var(--magenta-60);background:var(--magenta-60)!important}.bg-magenta-50{--background:var(--magenta-50);background:var(--magenta-50)!important}.bg-magenta-40{--background:var(--magenta-40);background:var(--magenta-40)!important}.bg-magenta-30{--background:var(--magenta-30);background:var(--magenta-30)!important}.bg-magenta-20{--background:var(--magenta-20);background:var(--magenta-20)!important}.bg-magenta-10{--background:var(--magenta-10);background:var(--magenta-10)!important}.bg-magenta-5{--background:var(--magenta-5);background:var(--magenta-5)!important}.bg-magenta-vivid-80{--background:var(--magenta-vivid-80);background:var(--magenta-vivid-80)!important}.bg-magenta-vivid-70{--background:var(--magenta-vivid-70);background:var(--magenta-vivid-70)!important}.bg-magenta-vivid-60{--background:var(--magenta-vivid-60);background:var(--magenta-vivid-60)!important}.bg-magenta-vivid-50{--background:var(--magenta-vivid-50);background:var(--magenta-vivid-50)!important}.bg-magenta-vivid-40{--background:var(--magenta-vivid-40);background:var(--magenta-vivid-40)!important}.bg-magenta-vivid-30{--background:var(--magenta-vivid-30);background:var(--magenta-vivid-30)!important}.bg-magenta-vivid-20{--background:var(--magenta-vivid-20);background:var(--magenta-vivid-20)!important}.bg-magenta-vivid-10{--background:var(--magenta-vivid-10);background:var(--magenta-vivid-10)!important}.bg-magenta-vivid-5{--background:var(--magenta-vivid-5);background:var(--magenta-vivid-5)!important}.bg-mint-90{--background:var(--mint-90);background:var(--mint-90)!important}.bg-mint-80{--background:var(--mint-80);background:var(--mint-80)!important}.bg-mint-70{--background:var(--mint-70);background:var(--mint-70)!important}.bg-mint-60{--background:var(--mint-60);background:var(--mint-60)!important}.bg-mint-50{--background:var(--mint-50);background:var(--mint-50)!important}.bg-mint-40{--background:var(--mint-40);background:var(--mint-40)!important}.bg-mint-30{--background:var(--mint-30);background:var(--mint-30)!important}.bg-mint-20{--background:var(--mint-20);background:var(--mint-20)!important}.bg-mint-10{--background:var(--mint-10);background:var(--mint-10)!important}.bg-mint-5{--background:var(--mint-5);background:var(--mint-5)!important}.bg-mint-cool-90{--background:var(--mint-cool-90);background:var(--mint-cool-90)!important}.bg-mint-cool-80{--background:var(--mint-cool-80);background:var(--mint-cool-80)!important}.bg-mint-cool-70{--background:var(--mint-cool-70);background:var(--mint-cool-70)!important}.bg-mint-cool-60{--background:var(--mint-cool-60);background:var(--mint-cool-60)!important}.bg-mint-cool-50{--background:var(--mint-cool-50);background:var(--mint-cool-50)!important}.bg-mint-cool-40{--background:var(--mint-cool-40);background:var(--mint-cool-40)!important}.bg-mint-cool-30{--background:var(--mint-cool-30);background:var(--mint-cool-30)!important}.bg-mint-cool-20{--background:var(--mint-cool-20);background:var(--mint-cool-20)!important}.bg-mint-cool-10{--background:var(--mint-cool-10);background:var(--mint-cool-10)!important}.bg-mint-cool-5{--background:var(--mint-cool-5);background:var(--mint-cool-5)!important}.bg-mint-vivid-80{--background:var(--mint-vivid-80);background:var(--mint-vivid-80)!important}.bg-mint-vivid-70{--background:var(--mint-vivid-70);background:var(--mint-vivid-70)!important}.bg-mint-vivid-60{--background:var(--mint-vivid-60);background:var(--mint-vivid-60)!important}.bg-mint-vivid-50{--background:var(--mint-vivid-50);background:var(--mint-vivid-50)!important}.bg-mint-vivid-40{--background:var(--mint-vivid-40);background:var(--mint-vivid-40)!important}.bg-mint-vivid-30{--background:var(--mint-vivid-30);background:var(--mint-vivid-30)!important}.bg-mint-vivid-20{--background:var(--mint-vivid-20);background:var(--mint-vivid-20)!important}.bg-mint-vivid-10{--background:var(--mint-vivid-10);background:var(--mint-vivid-10)!important}.bg-mint-vivid-5{--background:var(--mint-vivid-5);background:var(--mint-vivid-5)!important}.bg-mint-cool-vivid-80{--background:var(--mint-cool-vivid-80);background:var(--mint-cool-vivid-80)!important}.bg-mint-cool-vivid-70{--background:var(--mint-cool-vivid-70);background:var(--mint-cool-vivid-70)!important}.bg-mint-cool-vivid-60{--background:var(--mint-cool-vivid-60);background:var(--mint-cool-vivid-60)!important}.bg-mint-cool-vivid-50{--background:var(--mint-cool-vivid-50);background:var(--mint-cool-vivid-50)!important}.bg-mint-cool-vivid-40{--background:var(--mint-cool-vivid-40);background:var(--mint-cool-vivid-40)!important}.bg-mint-cool-vivid-30{--background:var(--mint-cool-vivid-30);background:var(--mint-cool-vivid-30)!important}.bg-mint-cool-vivid-20{--background:var(--mint-cool-vivid-20);background:var(--mint-cool-vivid-20)!important}.bg-mint-cool-vivid-10{--background:var(--mint-cool-vivid-10);background:var(--mint-cool-vivid-10)!important}.bg-mint-cool-vivid-5{--background:var(--mint-cool-vivid-5);background:var(--mint-cool-vivid-5)!important}.bg-orange-90{--background:var(--orange-90);background:var(--orange-90)!important}.bg-orange-80{--background:var(--orange-80);background:var(--orange-80)!important}.bg-orange-70{--background:var(--orange-70);background:var(--orange-70)!important}.bg-orange-60{--background:var(--orange-60);background:var(--orange-60)!important}.bg-orange-50{--background:var(--orange-50);background:var(--orange-50)!important}.bg-orange-40{--background:var(--orange-40);background:var(--orange-40)!important}.bg-orange-30{--background:var(--orange-30);background:var(--orange-30)!important}.bg-orange-20{--background:var(--orange-20);background:var(--orange-20)!important}.bg-orange-10{--background:var(--orange-10);background:var(--orange-10)!important}.bg-orange-5{--background:var(--orange-5);background:var(--orange-5)!important}.bg-orange-warm-90{--background:var(--orange-warm-90);background:var(--orange-warm-90)!important}.bg-orange-warm-80{--background:var(--orange-warm-80);background:var(--orange-warm-80)!important}.bg-orange-warm-70{--background:var(--orange-warm-70);background:var(--orange-warm-70)!important}.bg-orange-warm-60{--background:var(--orange-warm-60);background:var(--orange-warm-60)!important}.bg-orange-warm-50{--background:var(--orange-warm-50);background:var(--orange-warm-50)!important}.bg-orange-warm-40{--background:var(--orange-warm-40);background:var(--orange-warm-40)!important}.bg-orange-warm-30{--background:var(--orange-warm-30);background:var(--orange-warm-30)!important}.bg-orange-warm-20{--background:var(--orange-warm-20);background:var(--orange-warm-20)!important}.bg-orange-warm-10{--background:var(--orange-warm-10);background:var(--orange-warm-10)!important}.bg-orange-warm-5{--background:var(--orange-warm-5);background:var(--orange-warm-5)!important}.bg-orange-vivid-80{--background:var(--orange-vivid-80);background:var(--orange-vivid-80)!important}.bg-orange-vivid-70{--background:var(--orange-vivid-70);background:var(--orange-vivid-70)!important}.bg-orange-vivid-60{--background:var(--orange-vivid-60);background:var(--orange-vivid-60)!important}.bg-orange-vivid-50{--background:var(--orange-vivid-50);background:var(--orange-vivid-50)!important}.bg-orange-vivid-40{--background:var(--orange-vivid-40);background:var(--orange-vivid-40)!important}.bg-orange-vivid-30{--background:var(--orange-vivid-30);background:var(--orange-vivid-30)!important}.bg-orange-vivid-20{--background:var(--orange-vivid-20);background:var(--orange-vivid-20)!important}.bg-orange-vivid-10{--background:var(--orange-vivid-10);background:var(--orange-vivid-10)!important}.bg-orange-vivid-5{--background:var(--orange-vivid-5);background:var(--orange-vivid-5)!important}.bg-orange-warm-vivid-80{--background:var(--orange-warm-vivid-80);background:var(--orange-warm-vivid-80)!important}.bg-orange-warm-vivid-70{--background:var(--orange-warm-vivid-70);background:var(--orange-warm-vivid-70)!important}.bg-orange-warm-vivid-60{--background:var(--orange-warm-vivid-60);background:var(--orange-warm-vivid-60)!important}.bg-orange-warm-vivid-50{--background:var(--orange-warm-vivid-50);background:var(--orange-warm-vivid-50)!important}.bg-orange-warm-vivid-40{--background:var(--orange-warm-vivid-40);background:var(--orange-warm-vivid-40)!important}.bg-orange-warm-vivid-30{--background:var(--orange-warm-vivid-30);background:var(--orange-warm-vivid-30)!important}.bg-orange-warm-vivid-20{--background:var(--orange-warm-vivid-20);background:var(--orange-warm-vivid-20)!important}.bg-orange-warm-vivid-10{--background:var(--orange-warm-vivid-10);background:var(--orange-warm-vivid-10)!important}.bg-orange-warm-vivid-5{--background:var(--orange-warm-vivid-5);background:var(--orange-warm-vivid-5)!important}.bg-pure-100{--background:var(--pure-100);background:var(--pure-100)!important}.bg-pure-0{--background:var(--pure-0);background:var(--pure-0)!important}.text-pure-0{color:var(--pure-0)!important}.bg-red-90{--background:var(--red-90);background:var(--red-90)!important}.bg-red-80{--background:var(--red-80);background:var(--red-80)!important}.bg-red-70{--background:var(--red-70);background:var(--red-70)!important}.bg-red-60{--background:var(--red-60);background:var(--red-60)!important}.bg-red-50{--background:var(--red-50);background:var(--red-50)!important}.bg-red-40{--background:var(--red-40);background:var(--red-40)!important}.bg-red-30{--background:var(--red-30);background:var(--red-30)!important}.bg-red-20{--background:var(--red-20);background:var(--red-20)!important}.bg-red-10{--background:var(--red-10);background:var(--red-10)!important}.bg-red-5{--background:var(--red-5);background:var(--red-5)!important}.bg-red-cool-90{--background:var(--red-cool-90);background:var(--red-cool-90)!important}.bg-red-cool-80{--background:var(--red-cool-80);background:var(--red-cool-80)!important}.bg-red-cool-70{--background:var(--red-cool-70);background:var(--red-cool-70)!important}.bg-red-cool-60{--background:var(--red-cool-60);background:var(--red-cool-60)!important}.bg-red-cool-50{--background:var(--red-cool-50);background:var(--red-cool-50)!important}.bg-red-cool-40{--background:var(--red-cool-40);background:var(--red-cool-40)!important}.bg-red-cool-30{--background:var(--red-cool-30);background:var(--red-cool-30)!important}.bg-red-cool-20{--background:var(--red-cool-20);background:var(--red-cool-20)!important}.bg-red-cool-10{--background:var(--red-cool-10);background:var(--red-cool-10)!important}.bg-red-cool-5{--background:var(--red-cool-5);background:var(--red-cool-5)!important}.bg-red-warm-90{--background:var(--red-warm-90);background:var(--red-warm-90)!important}.bg-red-warm-80{--background:var(--red-warm-80);background:var(--red-warm-80)!important}.bg-red-warm-70{--background:var(--red-warm-70);background:var(--red-warm-70)!important}.bg-red-warm-60{--background:var(--red-warm-60);background:var(--red-warm-60)!important}.bg-red-warm-50{--background:var(--red-warm-50);background:var(--red-warm-50)!important}.bg-red-warm-40{--background:var(--red-warm-40);background:var(--red-warm-40)!important}.bg-red-warm-30{--background:var(--red-warm-30);background:var(--red-warm-30)!important}.bg-red-warm-20{--background:var(--red-warm-20);background:var(--red-warm-20)!important}.bg-red-warm-10{--background:var(--red-warm-10);background:var(--red-warm-10)!important}.bg-red-warm-5{--background:var(--red-warm-5);background:var(--red-warm-5)!important}.bg-red-vivid-80{--background:var(--red-vivid-80);background:var(--red-vivid-80)!important}.bg-red-vivid-70{--background:var(--red-vivid-70);background:var(--red-vivid-70)!important}.bg-red-vivid-60{--background:var(--red-vivid-60);background:var(--red-vivid-60)!important}.bg-red-vivid-50{--background:var(--red-vivid-50);background:var(--red-vivid-50)!important}.bg-red-vivid-40{--background:var(--red-vivid-40);background:var(--red-vivid-40)!important}.bg-red-vivid-30{--background:var(--red-vivid-30);background:var(--red-vivid-30)!important}.bg-red-vivid-20{--background:var(--red-vivid-20);background:var(--red-vivid-20)!important}.bg-red-vivid-10{--background:var(--red-vivid-10);background:var(--red-vivid-10)!important}.bg-red-vivid-5{--background:var(--red-vivid-5);background:var(--red-vivid-5)!important}.bg-red-cool-vivid-80{--background:var(--red-cool-vivid-80);background:var(--red-cool-vivid-80)!important}.bg-red-cool-vivid-70{--background:var(--red-cool-vivid-70);background:var(--red-cool-vivid-70)!important}.bg-red-cool-vivid-60{--background:var(--red-cool-vivid-60);background:var(--red-cool-vivid-60)!important}.bg-red-cool-vivid-50{--background:var(--red-cool-vivid-50);background:var(--red-cool-vivid-50)!important}.bg-red-cool-vivid-40{--background:var(--red-cool-vivid-40);background:var(--red-cool-vivid-40)!important}.bg-red-cool-vivid-30{--background:var(--red-cool-vivid-30);background:var(--red-cool-vivid-30)!important}.bg-red-cool-vivid-20{--background:var(--red-cool-vivid-20);background:var(--red-cool-vivid-20)!important}.bg-red-cool-vivid-10{--background:var(--red-cool-vivid-10);background:var(--red-cool-vivid-10)!important}.bg-red-cool-vivid-5{--background:var(--red-cool-vivid-5);background:var(--red-cool-vivid-5)!important}.bg-red-warm-vivid-80{--background:var(--red-warm-vivid-80);background:var(--red-warm-vivid-80)!important}.bg-red-warm-vivid-70{--background:var(--red-warm-vivid-70);background:var(--red-warm-vivid-70)!important}.bg-red-warm-vivid-60{--background:var(--red-warm-vivid-60);background:var(--red-warm-vivid-60)!important}.bg-red-warm-vivid-50{--background:var(--red-warm-vivid-50);background:var(--red-warm-vivid-50)!important}.bg-red-warm-vivid-40{--background:var(--red-warm-vivid-40);background:var(--red-warm-vivid-40)!important}.bg-red-warm-vivid-30{--background:var(--red-warm-vivid-30);background:var(--red-warm-vivid-30)!important}.bg-red-warm-vivid-20{--background:var(--red-warm-vivid-20);background:var(--red-warm-vivid-20)!important}.bg-red-warm-vivid-10{--background:var(--red-warm-vivid-10);background:var(--red-warm-vivid-10)!important}.bg-red-warm-vivid-5{--background:var(--red-warm-vivid-5);background:var(--red-warm-vivid-5)!important}.bg-violet-90{--background:var(--violet-90);background:var(--violet-90)!important}.bg-violet-80{--background:var(--violet-80);background:var(--violet-80)!important}.bg-violet-70{--background:var(--violet-70);background:var(--violet-70)!important}.bg-violet-60{--background:var(--violet-60);background:var(--violet-60)!important}.bg-violet-50{--background:var(--violet-50);background:var(--violet-50)!important}.bg-violet-40{--background:var(--violet-40);background:var(--violet-40)!important}.bg-violet-30{--background:var(--violet-30);background:var(--violet-30)!important}.bg-violet-20{--background:var(--violet-20);background:var(--violet-20)!important}.bg-violet-10{--background:var(--violet-10);background:var(--violet-10)!important}.bg-violet-5{--background:var(--violet-5);background:var(--violet-5)!important}.bg-violet-warm-90{--background:var(--violet-warm-90);background:var(--violet-warm-90)!important}.bg-violet-warm-80{--background:var(--violet-warm-80);background:var(--violet-warm-80)!important}.bg-violet-warm-70{--background:var(--violet-warm-70);background:var(--violet-warm-70)!important}.bg-violet-warm-60{--background:var(--violet-warm-60);background:var(--violet-warm-60)!important}.bg-violet-warm-50{--background:var(--violet-warm-50);background:var(--violet-warm-50)!important}.bg-violet-warm-40{--background:var(--violet-warm-40);background:var(--violet-warm-40)!important}.bg-violet-warm-30{--background:var(--violet-warm-30);background:var(--violet-warm-30)!important}.bg-violet-warm-20{--background:var(--violet-warm-20);background:var(--violet-warm-20)!important}.bg-violet-warm-10{--background:var(--violet-warm-10);background:var(--violet-warm-10)!important}.bg-violet-warm-5{--background:var(--violet-warm-5);background:var(--violet-warm-5)!important}.bg-violet-vivid-80{--background:var(--violet-vivid-80);background:var(--violet-vivid-80)!important}.bg-violet-vivid-70{--background:var(--violet-vivid-70);background:var(--violet-vivid-70)!important}.bg-violet-vivid-60{--background:var(--violet-vivid-60);background:var(--violet-vivid-60)!important}.bg-violet-vivid-50{--background:var(--violet-vivid-50);background:var(--violet-vivid-50)!important}.bg-violet-vivid-40{--background:var(--violet-vivid-40);background:var(--violet-vivid-40)!important}.bg-violet-vivid-30{--background:var(--violet-vivid-30);background:var(--violet-vivid-30)!important}.bg-violet-vivid-20{--background:var(--violet-vivid-20);background:var(--violet-vivid-20)!important}.bg-violet-vivid-10{--background:var(--violet-vivid-10);background:var(--violet-vivid-10)!important}.bg-violet-vivid-5{--background:var(--violet-vivid-5);background:var(--violet-vivid-5)!important}.bg-violet-warm-vivid-80{--background:var(--violet-warm-vivid-80);background:var(--violet-warm-vivid-80)!important}.bg-violet-warm-vivid-70{--background:var(--violet-warm-vivid-70);background:var(--violet-warm-vivid-70)!important}.bg-violet-warm-vivid-60{--background:var(--violet-warm-vivid-60);background:var(--violet-warm-vivid-60)!important}.bg-violet-warm-vivid-50{--background:var(--violet-warm-vivid-50);background:var(--violet-warm-vivid-50)!important}.bg-violet-warm-vivid-40{--background:var(--violet-warm-vivid-40);background:var(--violet-warm-vivid-40)!important}.bg-violet-warm-vivid-30{--background:var(--violet-warm-vivid-30);background:var(--violet-warm-vivid-30)!important}.bg-violet-warm-vivid-20{--background:var(--violet-warm-vivid-20);background:var(--violet-warm-vivid-20)!important}.bg-violet-warm-vivid-10{--background:var(--violet-warm-vivid-10);background:var(--violet-warm-vivid-10)!important}.bg-violet-warm-vivid-5{--background:var(--violet-warm-vivid-5);background:var(--violet-warm-vivid-5)!important}.bg-yellow-90{--background:var(--yellow-90);background:var(--yellow-90)!important}.bg-yellow-80{--background:var(--yellow-80);background:var(--yellow-80)!important}.bg-yellow-70{--background:var(--yellow-70);background:var(--yellow-70)!important}.bg-yellow-60{--background:var(--yellow-60);background:var(--yellow-60)!important}.bg-yellow-50{--background:var(--yellow-50);background:var(--yellow-50)!important}.bg-yellow-40{--background:var(--yellow-40);background:var(--yellow-40)!important}.bg-yellow-30{--background:var(--yellow-30);background:var(--yellow-30)!important}.bg-yellow-20{--background:var(--yellow-20);background:var(--yellow-20)!important}.bg-yellow-10{--background:var(--yellow-10);background:var(--yellow-10)!important}.bg-yellow-5{--background:var(--yellow-5);background:var(--yellow-5)!important}.bg-yellow-vivid-80{--background:var(--yellow-vivid-80);background:var(--yellow-vivid-80)!important}.bg-yellow-vivid-70{--background:var(--yellow-vivid-70);background:var(--yellow-vivid-70)!important}.bg-yellow-vivid-60{--background:var(--yellow-vivid-60);background:var(--yellow-vivid-60)!important}.bg-yellow-vivid-50{--background:var(--yellow-vivid-50);background:var(--yellow-vivid-50)!important}.bg-yellow-vivid-40{--background:var(--yellow-vivid-40);background:var(--yellow-vivid-40)!important}.bg-yellow-vivid-30{--background:var(--yellow-vivid-30);background:var(--yellow-vivid-30)!important}.bg-yellow-vivid-20{--background:var(--yellow-vivid-20);background:var(--yellow-vivid-20)!important}.bg-yellow-vivid-10{--background:var(--yellow-vivid-10);background:var(--yellow-vivid-10)!important}.bg-yellow-vivid-5{--background:var(--yellow-vivid-5);background:var(--yellow-vivid-5)!important}.bg-interactive{--background:var(--interactive);background:var(--interactive)!important}.bg-interactive-dark{--background:var(--interactive-dark);background:var(--interactive-dark)!important}.bg-danger{--background:var(--danger);background:var(--danger)!important}.bg-warning{--background:var(--warning);background:var(--warning)!important}.bg-success{--background:var(--success);background:var(--success)!important}.bg-info{--background:var(--info);background:var(--info)!important}.bg-primary-pastel-01{background:var(--color-primary-pastel-01)!important}.bg-primary-pastel-02{background:var(--color-primary-pastel-02)!important}.bg-primary-lighten-01{background:var(--color-primary-lighten-01)!important}.bg-primary-lighten-01,.bg-primary-lighten-02{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-primary-lighten-02{background:var(--color-primary-lighten-02)!important}.bg-primary-default{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark);background:var(--color-primary-default)!important}.text-primary-default{color:var(--color-primary-default)!important}.bg-primary-darken-01{background:var(--color-primary-darken-01)!important}.bg-primary-darken-01,.bg-primary-darken-02{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-primary-darken-02{background:var(--color-primary-darken-02)!important}.bg-secondary-01{background:var(--color-secondary-01)!important}.bg-secondary-02{background:var(--color-secondary-02)!important}.bg-secondary-03{background:var(--color-secondary-03)!important}.bg-secondary-04{background:var(--color-secondary-04)!important}.bg-secondary-05{background:var(--color-secondary-05)!important}.bg-secondary-06{background:var(--color-secondary-06)!important}.bg-secondary-06,.bg-secondary-07{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-secondary-07{background:var(--color-secondary-07)!important}.bg-secondary-08{background:var(--color-secondary-08)!important}.bg-secondary-08,.bg-secondary-09{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-secondary-09{background:var(--color-secondary-09)!important}.bg-highlight{background:var(--color-highlight)!important}.bg-highlight,.bg-support-01{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-support-01{background:var(--color-support-01)!important}.bg-support-02{background:var(--color-support-02)!important}.bg-support-03{background:var(--color-support-03)!important}.bg-support-03,.bg-support-04{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-support-04{background:var(--color-support-04)!important}.bg-support-05{background:var(--color-support-05)!important}.bg-support-06{background:var(--color-support-06)!important}.bg-support-07{background:var(--color-support-07)!important}.bg-support-07,.bg-support-08{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.bg-support-08{background:var(--color-support-08)!important}.bg-support-09{background:var(--color-support-09)!important}.bg-support-10{background:var(--color-support-10)!important}.bg-support-11{background:var(--color-support-11)!important}.text-right{text-align:right!important}.text-nowrap{white-space:nowrap!important}.text-uppercase{text-transform:uppercase!important}.text-medium{font-weight:500!important}.text-bold{font-weight:700!important}.text-base{font-size:var(--font-size-scale-base)!important}.text-down-01{font-size:var(--font-size-scale-down-01)!important}@media (min-width:576px){.text-sm-center{text-align:center!important}.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}}.ease{-webkit-animation-timing-function:ease;animation-timing-function:ease}.ease-in-out{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear,left top,left bottom,from(var(--status-highlight-overlay)),to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay),var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}.disabled,[disabled]{cursor:not-allowed;opacity:var(--disabled)}.disabled *,[disabled] *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(var(--interactive-rgb),var(--hover))),to(rgba(var(--interactive-rgb),var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb),var(--hover)),rgba(var(--interactive-rgb),var(--hover)))}[data-toggle=collapse]:focus{outline:none}[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{display:block;position:relative}:host #trigger{cursor:pointer;display:inline-block;outline:none}:host #trigger::slotted([slot=trigger]):focus:focus{outline:none}:host #trigger::slotted([slot=trigger]):focus:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host ::slotted([slot=target] :focus):focus{outline:none}:host ::slotted([slot=target] :focus):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host #target{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);display:none;left:0;position:absolute;top:100%}:host #target:focus:focus{outline:none}:host #target:focus:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host([is-open]) #target{display:block}";
11
10
 
@@ -323,22 +322,18 @@ const Dropdown = class {
323
322
  * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.
324
323
  * Este método é marcado com @Method() para que possa ser chamado externamente.
325
324
  */
326
- open() {
327
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
328
- this.isOpen = true;
329
- return { isOpen: this.isOpen };
330
- });
325
+ async open() {
326
+ this.isOpen = true;
327
+ return { isOpen: this.isOpen };
331
328
  }
332
329
  /**
333
330
  * Esconde o dropdown.
334
331
  * Define a propriedade `isOpen` como falsa e retorna o novo estado.
335
332
  * Este método é marcado com @Method() para que possa ser chamado externamente.
336
333
  */
337
- hide() {
338
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
339
- this.isOpen = false;
340
- return { isOpen: this.isOpen };
341
- });
334
+ async hide() {
335
+ this.isOpen = false;
336
+ return { isOpen: this.isOpen };
342
337
  }
343
338
  /**
344
339
  * Foca em um elemento específico com suporte a componentes personalizados
@@ -391,18 +386,16 @@ const Dropdown = class {
391
386
  * Define o foco no elemento interno do componente.
392
387
  * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
393
388
  */
394
- setFocus() {
395
- return tslib_es6.__awaiter(this, void 0, void 0, function* () {
396
- if (this.focusableElement !== null && this.focusableElement !== undefined) {
397
- this.focusableElement.focus();
398
- }
399
- else {
400
- this.focusOnTriggerElement();
401
- }
402
- });
389
+ async setFocus() {
390
+ if (this.focusableElement !== null && this.focusableElement !== undefined) {
391
+ this.focusableElement.focus();
392
+ }
393
+ else {
394
+ this.focusOnTriggerElement();
395
+ }
403
396
  }
404
397
  render() {
405
- return (index.h(index.Host, { key: '02cb03b288f7a36357cce0c3fd835ae67f357473', "is-open": this.isOpen }, index.h("div", { key: '7cd2f136a3c4479e56b0846c62379127524006c9', class: this.getCssClassMap(), id: this.customId }, index.h("div", { key: 'ced3927426f40e6768a242fb18c370c143b494fb', id: "trigger", onClick: this.toggle, "aria-controls": "target", "aria-haspopup": "true" }, index.h("slot", { key: '844d8f708daf611c70f36a293ab852305e4231ba', name: "trigger" })), index.h("div", { key: '835dd4b23f3a09faa9ced1bd5b0c3c05f8e7bc76', id: "target", "aria-hidden": !this.isOpen, role: "menu" }, index.h("slot", { key: 'e8286c83c4231ba7324ce322729bb290bc69fa96', name: "target" })))));
398
+ return (index.h(index.Host, { key: '63e96ba58309dfbadec6e2371d5d9a5340cf219b', "is-open": this.isOpen }, index.h("div", { key: '2ecb19878b352dd7849ae6b4690ee36233be5831', class: this.getCssClassMap(), id: this.customId }, index.h("div", { key: '2cbc250d8bfab582f37993d1a524e7bcbf268782', id: "trigger", onClick: this.toggle, "aria-controls": "target", "aria-haspopup": "true" }, index.h("slot", { key: '139a0bb114287d8a179f3c8df2a7ffc4afaf430e', name: "trigger" })), index.h("div", { key: '25cd93e4c4bcfbaf0512fd4334c7cc30ca270adf', id: "target", "aria-hidden": !this.isOpen, role: "menu" }, index.h("slot", { key: '14dfdb6e61a0a05ae38bc88593b74aa6c3d33eaa', name: "target" })))));
406
399
  }
407
400
  static get formAssociated() { return true; }
408
401
  get el() { return index.getElement(this); }
@@ -1 +1 @@
1
- {"file":"br-dropdown.entry.cjs.js","mappings":"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","names":["h","Host"],"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 outline: none;\n }\n\n #trigger::slotted([slot=\"trigger\"]) {\n &:focus {\n @include focus;\n }\n }\n\n ::slotted([slot=\"target\"] *:focus) {\n @include focus;\n }\n\n #target {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n box-shadow: var(--surface-shadow-sm);\n\n &:focus {\n @include focus;\n }\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 // Elementos DOM privados\n private triggerElement: HTMLElement\n private targetElement: HTMLElement | null = null\n private dropdownItems: HTMLElement[] = []\n private dropdownLinks: HTMLElement[] = []\n private focusableElement: HTMLElement | null | undefined = null\n\n // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\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(newValue: boolean) {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n if (newValue) {\n this.triggerElement.setAttribute('aria-expanded', 'true')\n } else {\n this.triggerElement.removeAttribute('aria-expanded')\n }\n }\n\n if (newValue) {\n this.initializeDropdownItems()\n } else {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ 'is-opened': newValue })\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.triggerElement.removeEventListener('keydown', this.triggerKeydownHandler)\n }\n\n if (this.targetElement !== null && this.targetElement !== undefined) {\n this.targetElement.removeEventListener('keydown', this.targetKeydownHandler)\n }\n\n this.clearDropdownItemListeners()\n }\n\n private clearDropdownItemListeners() {\n this.dropdownItems.forEach((item) => {\n item.removeEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.removeEventListener('keydown', this.handleLinkKeydown)\n })\n\n this.dropdownItems = []\n this.dropdownLinks = []\n }\n\n componentDidLoad() {\n this.triggerElement = this.el.shadowRoot.querySelector('#trigger')\n this.targetElement = this.el.shadowRoot.querySelector('#target')\n\n this.setBehavior()\n\n if (this.isOpen) {\n this.initializeDropdownItems()\n }\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\n\n /**\n * Configura os comportamentos de interação do dropdown\n */\n private setBehavior() {\n if (this.triggerElement === null) return\n\n this.triggerKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleTriggerBehavior(event)\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n } else if (event.key === 'ArrowDown' && this.isOpen) {\n event.preventDefault()\n this.initializeDropdownItems()\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n }\n }\n }\n\n this.targetKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n }\n }\n\n this.triggerElement.addEventListener('keydown', this.triggerKeydownHandler)\n if (this.targetElement) {\n this.targetElement.addEventListener('keydown', this.targetKeydownHandler)\n }\n }\n\n /**\n * Lida com o comportamento no trigger\n */\n private handleTriggerBehavior(event: Event) {\n event.preventDefault()\n this.toggle(event)\n\n if (this.isOpen) {\n setTimeout(() => {\n this.initializeDropdownItems()\n }, 0)\n }\n }\n\n /**\n * Inicializa os itens do dropdown com comportamentos de navegação com teclado,\n * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas\n */\n private initializeDropdownItems() {\n if (this.targetElement === null) return\n\n this.clearDropdownItemListeners()\n\n this.targetElement.setAttribute('tabindex', '-1')\n this.targetElement.focus()\n\n const targetSlot = this.el.shadowRoot.querySelector('slot[name=\"target\"]') as HTMLSlotElement\n if (targetSlot === null || targetSlot === undefined) return\n\n const assignedElements = targetSlot.assignedElements()\n if (assignedElements.length === 0) return\n\n const nonLinkSelector =\n 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex=\"-1\"]):not(a[href])'\n\n const linkSelector = 'a[href], br-item[href]'\n\n assignedElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n if (element.matches(linkSelector)) {\n this.dropdownLinks.push(element)\n } else if (element.matches(nonLinkSelector)) {\n this.dropdownItems.push(element)\n }\n }\n\n const linkChildren = Array.from(element.querySelectorAll(linkSelector)) as HTMLElement[]\n this.dropdownLinks = this.dropdownLinks.concat(linkChildren)\n\n const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)) as HTMLElement[]\n this.dropdownItems = this.dropdownItems.concat(nonLinkChildren)\n })\n\n this.dropdownItems.forEach((item) => {\n item.addEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.addEventListener('keydown', this.handleLinkKeydown)\n })\n\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n this.focusableElement = this.dropdownLinks[0]\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n this.focusableElement = this.dropdownItems[0]\n }\n }\n\n /**\n * Handler específico para links\n */\n private handleLinkKeydown = (event: KeyboardEvent) => {\n const link = event.currentTarget as HTMLElement\n const key = event.key\n const linkIndex = this.dropdownLinks.indexOf(link)\n const lastLinkIndex = this.dropdownLinks.length - 1\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n event.preventDefault()\n event.stopPropagation()\n break\n case 'Tab':\n event.preventDefault()\n\n if (!event.shiftKey) {\n if (linkIndex >= lastLinkIndex) {\n this.focusOnElement(this.dropdownLinks[0])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex + 1])\n }\n } else {\n if (linkIndex <= 0) {\n this.focusOnElement(this.dropdownLinks[lastLinkIndex])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex - 1])\n }\n }\n break\n case 'Enter':\n case ' ':\n if (key === ' ' && link.tagName.toLowerCase() === 'a') {\n event.preventDefault()\n }\n setTimeout(() => this.hide(), 100)\n break\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n default:\n break\n }\n }\n\n /**\n * Handler para eventos de keydown nos itens não-link\n * Implementa navegação completa por setas, Tab não navega entre estes itens\n */\n private handleItemKeydown = (event: KeyboardEvent) => {\n const item = event.currentTarget as HTMLElement\n const key = event.key\n const currentIndex = this.dropdownItems.indexOf(item)\n const lastIndex = this.dropdownItems.length - 1\n\n switch (key) {\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex <= 0) {\n this.focusOnElement(this.dropdownItems[lastIndex])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex - 1])\n }\n break\n\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex >= lastIndex) {\n this.focusOnElement(this.dropdownItems[0])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex + 1])\n }\n break\n\n case 'Home':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[0])\n break\n\n case 'End':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[lastIndex])\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n item.click()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n case 'Tab':\n break\n\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n default:\n break\n }\n }\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 if (!this.isOpen) return\n\n const path = event.composedPath()\n\n if (\n this.triggerElement &&\n this.targetElement &&\n !path.includes(this.triggerElement) &&\n !path.includes(this.targetElement)\n ) {\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 }\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 }\n }\n\n /**\n * Foca em um elemento específico com suporte a componentes personalizados\n * @param targetElement Elemento a receber o foco\n */\n private focusOnElement(targetElement: HTMLElement) {\n if (targetElement && targetElement !== this.el) {\n if ('setFocus' in targetElement) {\n ;(targetElement as { setFocus: () => void }).setFocus()\n } else {\n targetElement.focus()\n }\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Foca no elemento interativo dentro do slot trigger\n * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele\n */\n private focusOnTriggerElement() {\n const triggerSlot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (triggerSlot) {\n const slotElements = triggerSlot.assignedElements()\n if (slotElements.length > 0) {\n const firstElement = slotElements[0] as HTMLElement\n if ('setFocus' in firstElement) {\n ;(firstElement as { setFocus: () => void }).setFocus()\n } else {\n firstElement.focus()\n }\n firstElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\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 if (this.focusableElement !== null && this.focusableElement !== undefined) {\n this.focusableElement.focus()\n } else {\n this.focusOnTriggerElement()\n }\n }\n\n render() {\n return (\n <Host is-open={this.isOpen}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div id=\"trigger\" onClick={this.toggle} aria-controls=\"target\" aria-haspopup=\"true\">\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen} role=\"menu\">\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"],"version":3}
1
+ {"file":"br-dropdown.entry.cjs.js","mappings":"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","names":["h","Host"],"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 outline: none;\n }\n\n #trigger::slotted([slot=\"trigger\"]) {\n &:focus {\n @include focus;\n }\n }\n\n ::slotted([slot=\"target\"] *:focus) {\n @include focus;\n }\n\n #target {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n box-shadow: var(--surface-shadow-sm);\n\n &:focus {\n @include focus;\n }\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 // Elementos DOM privados\n private triggerElement: HTMLElement\n private targetElement: HTMLElement | null = null\n private dropdownItems: HTMLElement[] = []\n private dropdownLinks: HTMLElement[] = []\n private focusableElement: HTMLElement | null | undefined = null\n\n // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\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(newValue: boolean) {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n if (newValue) {\n this.triggerElement.setAttribute('aria-expanded', 'true')\n } else {\n this.triggerElement.removeAttribute('aria-expanded')\n }\n }\n\n if (newValue) {\n this.initializeDropdownItems()\n } else {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ 'is-opened': newValue })\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.triggerElement.removeEventListener('keydown', this.triggerKeydownHandler)\n }\n\n if (this.targetElement !== null && this.targetElement !== undefined) {\n this.targetElement.removeEventListener('keydown', this.targetKeydownHandler)\n }\n\n this.clearDropdownItemListeners()\n }\n\n private clearDropdownItemListeners() {\n this.dropdownItems.forEach((item) => {\n item.removeEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.removeEventListener('keydown', this.handleLinkKeydown)\n })\n\n this.dropdownItems = []\n this.dropdownLinks = []\n }\n\n componentDidLoad() {\n this.triggerElement = this.el.shadowRoot.querySelector('#trigger')\n this.targetElement = this.el.shadowRoot.querySelector('#target')\n\n this.setBehavior()\n\n if (this.isOpen) {\n this.initializeDropdownItems()\n }\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\n\n /**\n * Configura os comportamentos de interação do dropdown\n */\n private setBehavior() {\n if (this.triggerElement === null) return\n\n this.triggerKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleTriggerBehavior(event)\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n } else if (event.key === 'ArrowDown' && this.isOpen) {\n event.preventDefault()\n this.initializeDropdownItems()\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n }\n }\n }\n\n this.targetKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n }\n }\n\n this.triggerElement.addEventListener('keydown', this.triggerKeydownHandler)\n if (this.targetElement) {\n this.targetElement.addEventListener('keydown', this.targetKeydownHandler)\n }\n }\n\n /**\n * Lida com o comportamento no trigger\n */\n private handleTriggerBehavior(event: Event) {\n event.preventDefault()\n this.toggle(event)\n\n if (this.isOpen) {\n setTimeout(() => {\n this.initializeDropdownItems()\n }, 0)\n }\n }\n\n /**\n * Inicializa os itens do dropdown com comportamentos de navegação com teclado,\n * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas\n */\n private initializeDropdownItems() {\n if (this.targetElement === null) return\n\n this.clearDropdownItemListeners()\n\n this.targetElement.setAttribute('tabindex', '-1')\n this.targetElement.focus()\n\n const targetSlot = this.el.shadowRoot.querySelector('slot[name=\"target\"]') as HTMLSlotElement\n if (targetSlot === null || targetSlot === undefined) return\n\n const assignedElements = targetSlot.assignedElements()\n if (assignedElements.length === 0) return\n\n const nonLinkSelector =\n 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex=\"-1\"]):not(a[href])'\n\n const linkSelector = 'a[href], br-item[href]'\n\n assignedElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n if (element.matches(linkSelector)) {\n this.dropdownLinks.push(element)\n } else if (element.matches(nonLinkSelector)) {\n this.dropdownItems.push(element)\n }\n }\n\n const linkChildren = Array.from(element.querySelectorAll(linkSelector)) as HTMLElement[]\n this.dropdownLinks = this.dropdownLinks.concat(linkChildren)\n\n const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)) as HTMLElement[]\n this.dropdownItems = this.dropdownItems.concat(nonLinkChildren)\n })\n\n this.dropdownItems.forEach((item) => {\n item.addEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.addEventListener('keydown', this.handleLinkKeydown)\n })\n\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n this.focusableElement = this.dropdownLinks[0]\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n this.focusableElement = this.dropdownItems[0]\n }\n }\n\n /**\n * Handler específico para links\n */\n private handleLinkKeydown = (event: KeyboardEvent) => {\n const link = event.currentTarget as HTMLElement\n const key = event.key\n const linkIndex = this.dropdownLinks.indexOf(link)\n const lastLinkIndex = this.dropdownLinks.length - 1\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n event.preventDefault()\n event.stopPropagation()\n break\n case 'Tab':\n event.preventDefault()\n\n if (!event.shiftKey) {\n if (linkIndex >= lastLinkIndex) {\n this.focusOnElement(this.dropdownLinks[0])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex + 1])\n }\n } else {\n if (linkIndex <= 0) {\n this.focusOnElement(this.dropdownLinks[lastLinkIndex])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex - 1])\n }\n }\n break\n case 'Enter':\n case ' ':\n if (key === ' ' && link.tagName.toLowerCase() === 'a') {\n event.preventDefault()\n }\n setTimeout(() => this.hide(), 100)\n break\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n default:\n break\n }\n }\n\n /**\n * Handler para eventos de keydown nos itens não-link\n * Implementa navegação completa por setas, Tab não navega entre estes itens\n */\n private handleItemKeydown = (event: KeyboardEvent) => {\n const item = event.currentTarget as HTMLElement\n const key = event.key\n const currentIndex = this.dropdownItems.indexOf(item)\n const lastIndex = this.dropdownItems.length - 1\n\n switch (key) {\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex <= 0) {\n this.focusOnElement(this.dropdownItems[lastIndex])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex - 1])\n }\n break\n\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex >= lastIndex) {\n this.focusOnElement(this.dropdownItems[0])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex + 1])\n }\n break\n\n case 'Home':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[0])\n break\n\n case 'End':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[lastIndex])\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n item.click()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n case 'Tab':\n break\n\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n default:\n break\n }\n }\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 if (!this.isOpen) return\n\n const path = event.composedPath()\n\n if (\n this.triggerElement &&\n this.targetElement &&\n !path.includes(this.triggerElement) &&\n !path.includes(this.targetElement)\n ) {\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 }\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 }\n }\n\n /**\n * Foca em um elemento específico com suporte a componentes personalizados\n * @param targetElement Elemento a receber o foco\n */\n private focusOnElement(targetElement: HTMLElement) {\n if (targetElement && targetElement !== this.el) {\n if ('setFocus' in targetElement) {\n ;(targetElement as { setFocus: () => void }).setFocus()\n } else {\n targetElement.focus()\n }\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Foca no elemento interativo dentro do slot trigger\n * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele\n */\n private focusOnTriggerElement() {\n const triggerSlot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (triggerSlot) {\n const slotElements = triggerSlot.assignedElements()\n if (slotElements.length > 0) {\n const firstElement = slotElements[0] as HTMLElement\n if ('setFocus' in firstElement) {\n ;(firstElement as { setFocus: () => void }).setFocus()\n } else {\n firstElement.focus()\n }\n firstElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\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 if (this.focusableElement !== null && this.focusableElement !== undefined) {\n this.focusableElement.focus()\n } else {\n this.focusOnTriggerElement()\n }\n }\n\n render() {\n return (\n <Host is-open={this.isOpen}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div id=\"trigger\" onClick={this.toggle} aria-controls=\"target\" aria-haspopup=\"true\">\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen} role=\"menu\">\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"],"version":3}
@@ -1 +1 @@
1
- {"version":3,"file":"br-dropdown.entry.cjs.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 outline: none;\n }\n\n #trigger::slotted([slot=\"trigger\"]) {\n &:focus {\n @include focus;\n }\n }\n\n ::slotted([slot=\"target\"] *:focus) {\n @include focus;\n }\n\n #target {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n box-shadow: var(--surface-shadow-sm);\n\n &:focus {\n @include focus;\n }\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 // Elementos DOM privados\n private triggerElement: HTMLElement\n private targetElement: HTMLElement | null = null\n private dropdownItems: HTMLElement[] = []\n private dropdownLinks: HTMLElement[] = []\n private focusableElement: HTMLElement | null | undefined = null\n\n // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\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(newValue: boolean) {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n if (newValue) {\n this.triggerElement.setAttribute('aria-expanded', 'true')\n } else {\n this.triggerElement.removeAttribute('aria-expanded')\n }\n }\n\n if (newValue) {\n this.initializeDropdownItems()\n } else {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ 'is-opened': newValue })\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.triggerElement.removeEventListener('keydown', this.triggerKeydownHandler)\n }\n\n if (this.targetElement !== null && this.targetElement !== undefined) {\n this.targetElement.removeEventListener('keydown', this.targetKeydownHandler)\n }\n\n this.clearDropdownItemListeners()\n }\n\n private clearDropdownItemListeners() {\n this.dropdownItems.forEach((item) => {\n item.removeEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.removeEventListener('keydown', this.handleLinkKeydown)\n })\n\n this.dropdownItems = []\n this.dropdownLinks = []\n }\n\n componentDidLoad() {\n this.triggerElement = this.el.shadowRoot.querySelector('#trigger')\n this.targetElement = this.el.shadowRoot.querySelector('#target')\n\n this.setBehavior()\n\n if (this.isOpen) {\n this.initializeDropdownItems()\n }\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\n\n /**\n * Configura os comportamentos de interação do dropdown\n */\n private setBehavior() {\n if (this.triggerElement === null) return\n\n this.triggerKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleTriggerBehavior(event)\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n } else if (event.key === 'ArrowDown' && this.isOpen) {\n event.preventDefault()\n this.initializeDropdownItems()\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n }\n }\n }\n\n this.targetKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n }\n }\n\n this.triggerElement.addEventListener('keydown', this.triggerKeydownHandler)\n if (this.targetElement) {\n this.targetElement.addEventListener('keydown', this.targetKeydownHandler)\n }\n }\n\n /**\n * Lida com o comportamento no trigger\n */\n private handleTriggerBehavior(event: Event) {\n event.preventDefault()\n this.toggle(event)\n\n if (this.isOpen) {\n setTimeout(() => {\n this.initializeDropdownItems()\n }, 0)\n }\n }\n\n /**\n * Inicializa os itens do dropdown com comportamentos de navegação com teclado,\n * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas\n */\n private initializeDropdownItems() {\n if (this.targetElement === null) return\n\n this.clearDropdownItemListeners()\n\n this.targetElement.setAttribute('tabindex', '-1')\n this.targetElement.focus()\n\n const targetSlot = this.el.shadowRoot.querySelector('slot[name=\"target\"]') as HTMLSlotElement\n if (targetSlot === null || targetSlot === undefined) return\n\n const assignedElements = targetSlot.assignedElements()\n if (assignedElements.length === 0) return\n\n const nonLinkSelector =\n 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex=\"-1\"]):not(a[href])'\n\n const linkSelector = 'a[href], br-item[href]'\n\n assignedElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n if (element.matches(linkSelector)) {\n this.dropdownLinks.push(element)\n } else if (element.matches(nonLinkSelector)) {\n this.dropdownItems.push(element)\n }\n }\n\n const linkChildren = Array.from(element.querySelectorAll(linkSelector)) as HTMLElement[]\n this.dropdownLinks = this.dropdownLinks.concat(linkChildren)\n\n const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)) as HTMLElement[]\n this.dropdownItems = this.dropdownItems.concat(nonLinkChildren)\n })\n\n this.dropdownItems.forEach((item) => {\n item.addEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.addEventListener('keydown', this.handleLinkKeydown)\n })\n\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n this.focusableElement = this.dropdownLinks[0]\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n this.focusableElement = this.dropdownItems[0]\n }\n }\n\n /**\n * Handler específico para links\n */\n private handleLinkKeydown = (event: KeyboardEvent) => {\n const link = event.currentTarget as HTMLElement\n const key = event.key\n const linkIndex = this.dropdownLinks.indexOf(link)\n const lastLinkIndex = this.dropdownLinks.length - 1\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n event.preventDefault()\n event.stopPropagation()\n break\n case 'Tab':\n event.preventDefault()\n\n if (!event.shiftKey) {\n if (linkIndex >= lastLinkIndex) {\n this.focusOnElement(this.dropdownLinks[0])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex + 1])\n }\n } else {\n if (linkIndex <= 0) {\n this.focusOnElement(this.dropdownLinks[lastLinkIndex])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex - 1])\n }\n }\n break\n case 'Enter':\n case ' ':\n if (key === ' ' && link.tagName.toLowerCase() === 'a') {\n event.preventDefault()\n }\n setTimeout(() => this.hide(), 100)\n break\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n default:\n break\n }\n }\n\n /**\n * Handler para eventos de keydown nos itens não-link\n * Implementa navegação completa por setas, Tab não navega entre estes itens\n */\n private handleItemKeydown = (event: KeyboardEvent) => {\n const item = event.currentTarget as HTMLElement\n const key = event.key\n const currentIndex = this.dropdownItems.indexOf(item)\n const lastIndex = this.dropdownItems.length - 1\n\n switch (key) {\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex <= 0) {\n this.focusOnElement(this.dropdownItems[lastIndex])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex - 1])\n }\n break\n\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex >= lastIndex) {\n this.focusOnElement(this.dropdownItems[0])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex + 1])\n }\n break\n\n case 'Home':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[0])\n break\n\n case 'End':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[lastIndex])\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n item.click()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n case 'Tab':\n break\n\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n default:\n break\n }\n }\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 if (!this.isOpen) return\n\n const path = event.composedPath()\n\n if (\n this.triggerElement &&\n this.targetElement &&\n !path.includes(this.triggerElement) &&\n !path.includes(this.targetElement)\n ) {\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 }\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 }\n }\n\n /**\n * Foca em um elemento específico com suporte a componentes personalizados\n * @param targetElement Elemento a receber o foco\n */\n private focusOnElement(targetElement: HTMLElement) {\n if (targetElement && targetElement !== this.el) {\n if ('setFocus' in targetElement) {\n ;(targetElement as { setFocus: () => void }).setFocus()\n } else {\n targetElement.focus()\n }\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Foca no elemento interativo dentro do slot trigger\n * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele\n */\n private focusOnTriggerElement() {\n const triggerSlot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (triggerSlot) {\n const slotElements = triggerSlot.assignedElements()\n if (slotElements.length > 0) {\n const firstElement = slotElements[0] as HTMLElement\n if ('setFocus' in firstElement) {\n ;(firstElement as { setFocus: () => void }).setFocus()\n } else {\n firstElement.focus()\n }\n firstElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\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 if (this.focusableElement !== null && this.focusableElement !== undefined) {\n this.focusableElement.focus()\n } else {\n this.focusOnTriggerElement()\n }\n }\n\n render() {\n return (\n <Host is-open={this.isOpen}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div id=\"trigger\" onClick={this.toggle} aria-controls=\"target\" aria-haspopup=\"true\">\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen} role=\"menu\">\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"],"names":["h","Host"],"mappings":"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"}
1
+ {"version":3,"file":"br-dropdown.entry.cjs.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 outline: none;\n }\n\n #trigger::slotted([slot=\"trigger\"]) {\n &:focus {\n @include focus;\n }\n }\n\n ::slotted([slot=\"target\"] *:focus) {\n @include focus;\n }\n\n #target {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n box-shadow: var(--surface-shadow-sm);\n\n &:focus {\n @include focus;\n }\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 // Elementos DOM privados\n private triggerElement: HTMLElement\n private targetElement: HTMLElement | null = null\n private dropdownItems: HTMLElement[] = []\n private dropdownLinks: HTMLElement[] = []\n private focusableElement: HTMLElement | null | undefined = null\n\n // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\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(newValue: boolean) {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n if (newValue) {\n this.triggerElement.setAttribute('aria-expanded', 'true')\n } else {\n this.triggerElement.removeAttribute('aria-expanded')\n }\n }\n\n if (newValue) {\n this.initializeDropdownItems()\n } else {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ 'is-opened': newValue })\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.triggerElement.removeEventListener('keydown', this.triggerKeydownHandler)\n }\n\n if (this.targetElement !== null && this.targetElement !== undefined) {\n this.targetElement.removeEventListener('keydown', this.targetKeydownHandler)\n }\n\n this.clearDropdownItemListeners()\n }\n\n private clearDropdownItemListeners() {\n this.dropdownItems.forEach((item) => {\n item.removeEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.removeEventListener('keydown', this.handleLinkKeydown)\n })\n\n this.dropdownItems = []\n this.dropdownLinks = []\n }\n\n componentDidLoad() {\n this.triggerElement = this.el.shadowRoot.querySelector('#trigger')\n this.targetElement = this.el.shadowRoot.querySelector('#target')\n\n this.setBehavior()\n\n if (this.isOpen) {\n this.initializeDropdownItems()\n }\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\n\n /**\n * Configura os comportamentos de interação do dropdown\n */\n private setBehavior() {\n if (this.triggerElement === null) return\n\n this.triggerKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleTriggerBehavior(event)\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n } else if (event.key === 'ArrowDown' && this.isOpen) {\n event.preventDefault()\n this.initializeDropdownItems()\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n }\n }\n }\n\n this.targetKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n }\n }\n\n this.triggerElement.addEventListener('keydown', this.triggerKeydownHandler)\n if (this.targetElement) {\n this.targetElement.addEventListener('keydown', this.targetKeydownHandler)\n }\n }\n\n /**\n * Lida com o comportamento no trigger\n */\n private handleTriggerBehavior(event: Event) {\n event.preventDefault()\n this.toggle(event)\n\n if (this.isOpen) {\n setTimeout(() => {\n this.initializeDropdownItems()\n }, 0)\n }\n }\n\n /**\n * Inicializa os itens do dropdown com comportamentos de navegação com teclado,\n * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas\n */\n private initializeDropdownItems() {\n if (this.targetElement === null) return\n\n this.clearDropdownItemListeners()\n\n this.targetElement.setAttribute('tabindex', '-1')\n this.targetElement.focus()\n\n const targetSlot = this.el.shadowRoot.querySelector('slot[name=\"target\"]') as HTMLSlotElement\n if (targetSlot === null || targetSlot === undefined) return\n\n const assignedElements = targetSlot.assignedElements()\n if (assignedElements.length === 0) return\n\n const nonLinkSelector =\n 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex=\"-1\"]):not(a[href])'\n\n const linkSelector = 'a[href], br-item[href]'\n\n assignedElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n if (element.matches(linkSelector)) {\n this.dropdownLinks.push(element)\n } else if (element.matches(nonLinkSelector)) {\n this.dropdownItems.push(element)\n }\n }\n\n const linkChildren = Array.from(element.querySelectorAll(linkSelector)) as HTMLElement[]\n this.dropdownLinks = this.dropdownLinks.concat(linkChildren)\n\n const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)) as HTMLElement[]\n this.dropdownItems = this.dropdownItems.concat(nonLinkChildren)\n })\n\n this.dropdownItems.forEach((item) => {\n item.addEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.addEventListener('keydown', this.handleLinkKeydown)\n })\n\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n this.focusableElement = this.dropdownLinks[0]\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n this.focusableElement = this.dropdownItems[0]\n }\n }\n\n /**\n * Handler específico para links\n */\n private handleLinkKeydown = (event: KeyboardEvent) => {\n const link = event.currentTarget as HTMLElement\n const key = event.key\n const linkIndex = this.dropdownLinks.indexOf(link)\n const lastLinkIndex = this.dropdownLinks.length - 1\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n event.preventDefault()\n event.stopPropagation()\n break\n case 'Tab':\n event.preventDefault()\n\n if (!event.shiftKey) {\n if (linkIndex >= lastLinkIndex) {\n this.focusOnElement(this.dropdownLinks[0])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex + 1])\n }\n } else {\n if (linkIndex <= 0) {\n this.focusOnElement(this.dropdownLinks[lastLinkIndex])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex - 1])\n }\n }\n break\n case 'Enter':\n case ' ':\n if (key === ' ' && link.tagName.toLowerCase() === 'a') {\n event.preventDefault()\n }\n setTimeout(() => this.hide(), 100)\n break\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n default:\n break\n }\n }\n\n /**\n * Handler para eventos de keydown nos itens não-link\n * Implementa navegação completa por setas, Tab não navega entre estes itens\n */\n private handleItemKeydown = (event: KeyboardEvent) => {\n const item = event.currentTarget as HTMLElement\n const key = event.key\n const currentIndex = this.dropdownItems.indexOf(item)\n const lastIndex = this.dropdownItems.length - 1\n\n switch (key) {\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex <= 0) {\n this.focusOnElement(this.dropdownItems[lastIndex])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex - 1])\n }\n break\n\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex >= lastIndex) {\n this.focusOnElement(this.dropdownItems[0])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex + 1])\n }\n break\n\n case 'Home':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[0])\n break\n\n case 'End':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[lastIndex])\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n item.click()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n case 'Tab':\n break\n\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n default:\n break\n }\n }\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 if (!this.isOpen) return\n\n const path = event.composedPath()\n\n if (\n this.triggerElement &&\n this.targetElement &&\n !path.includes(this.triggerElement) &&\n !path.includes(this.targetElement)\n ) {\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 }\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 }\n }\n\n /**\n * Foca em um elemento específico com suporte a componentes personalizados\n * @param targetElement Elemento a receber o foco\n */\n private focusOnElement(targetElement: HTMLElement) {\n if (targetElement && targetElement !== this.el) {\n if ('setFocus' in targetElement) {\n ;(targetElement as { setFocus: () => void }).setFocus()\n } else {\n targetElement.focus()\n }\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Foca no elemento interativo dentro do slot trigger\n * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele\n */\n private focusOnTriggerElement() {\n const triggerSlot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (triggerSlot) {\n const slotElements = triggerSlot.assignedElements()\n if (slotElements.length > 0) {\n const firstElement = slotElements[0] as HTMLElement\n if ('setFocus' in firstElement) {\n ;(firstElement as { setFocus: () => void }).setFocus()\n } else {\n firstElement.focus()\n }\n firstElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\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 if (this.focusableElement !== null && this.focusableElement !== undefined) {\n this.focusableElement.focus()\n } else {\n this.focusOnTriggerElement()\n }\n }\n\n render() {\n return (\n <Host is-open={this.isOpen}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div id=\"trigger\" onClick={this.toggle} aria-controls=\"target\" aria-haspopup=\"true\">\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen} role=\"menu\">\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"],"names":["h","Host"],"mappings":"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"}