@govbr-ds/webcomponents 2.0.0-next.64 → 2.0.0-next.65

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 (691) hide show
  1. package/dist/cjs/br-avatar.cjs.entry.js +1 -1
  2. package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
  3. package/dist/cjs/br-breadcrumb.cjs.entry.js +113 -61
  4. package/dist/cjs/br-breadcrumb.entry.cjs.js.map +1 -1
  5. package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
  6. package/dist/cjs/br-button_2.cjs.entry.js +4 -4
  7. package/dist/cjs/br-card.cjs.entry.js +2 -2
  8. package/dist/cjs/br-card.entry.cjs.js.map +1 -1
  9. package/dist/cjs/br-checkbox.br-input.br-radio.entry.cjs.js.map +1 -1
  10. package/dist/cjs/br-checkbox_3.cjs.entry.js +6 -6
  11. package/dist/cjs/br-checkgroup.cjs.entry.js +2 -2
  12. package/dist/cjs/br-checkgroup.entry.cjs.js.map +1 -1
  13. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +4 -4
  15. package/dist/cjs/br-crumb.cjs.entry.js +38 -0
  16. package/dist/cjs/br-crumb.entry.cjs.js.map +1 -0
  17. package/dist/cjs/br-datetime-picker.cjs.entry.js +2 -2
  18. package/dist/cjs/br-datetime-picker.entry.cjs.js.map +1 -1
  19. package/dist/cjs/br-divider.cjs.entry.js +2 -2
  20. package/dist/cjs/br-divider.entry.cjs.js.map +1 -1
  21. package/dist/cjs/br-dropdown.br-select.entry.cjs.js.map +1 -1
  22. package/dist/cjs/br-dropdown_2.cjs.entry.js +123 -40
  23. package/dist/cjs/br-footer-category.cjs.entry.js +3 -3
  24. package/dist/cjs/br-footer-category.entry.cjs.js.map +1 -1
  25. package/dist/cjs/br-footer-item.cjs.entry.js +2 -2
  26. package/dist/cjs/br-footer-item.entry.cjs.js.map +1 -1
  27. package/dist/cjs/br-footer-legal.cjs.entry.js +2 -2
  28. package/dist/cjs/br-footer-legal.entry.cjs.js.map +1 -1
  29. package/dist/cjs/br-footer-logo.cjs.entry.js +2 -2
  30. package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -1
  31. package/dist/cjs/br-footer-social.cjs.entry.js +2 -2
  32. package/dist/cjs/br-footer-social.entry.cjs.js.map +1 -1
  33. package/dist/cjs/br-footer.cjs.entry.js +2 -2
  34. package/dist/cjs/br-footer.entry.cjs.js.map +1 -1
  35. package/dist/cjs/br-header-function.cjs.entry.js +2 -2
  36. package/dist/cjs/br-header-function.entry.cjs.js.map +1 -1
  37. package/dist/cjs/br-header-link.cjs.entry.js +2 -2
  38. package/dist/cjs/br-header-link.entry.cjs.js.map +1 -1
  39. package/dist/cjs/br-header-list.cjs.entry.js +2 -2
  40. package/dist/cjs/br-header-list.entry.cjs.js.map +1 -1
  41. package/dist/cjs/br-header-logo.cjs.entry.js +2 -2
  42. package/dist/cjs/br-header-logo.entry.cjs.js.map +1 -1
  43. package/dist/cjs/br-header.cjs.entry.js +2 -2
  44. package/dist/cjs/br-header.entry.cjs.js.map +1 -1
  45. package/dist/cjs/br-item.cjs.entry.js +2 -2
  46. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  47. package/dist/cjs/br-loading.cjs.entry.js +2 -2
  48. package/dist/cjs/br-loading.entry.cjs.js.map +1 -1
  49. package/dist/cjs/br-magic-button.cjs.entry.js +2 -2
  50. package/dist/cjs/br-magic-button.entry.cjs.js.map +1 -1
  51. package/dist/cjs/br-menu-header.cjs.entry.js +2 -2
  52. package/dist/cjs/br-menu-header.entry.cjs.js.map +1 -1
  53. package/dist/cjs/br-menu-info.cjs.entry.js +2 -2
  54. package/dist/cjs/br-menu-info.entry.cjs.js.map +1 -1
  55. package/dist/cjs/br-menu-item.cjs.entry.js +3 -3
  56. package/dist/cjs/br-menu-item.entry.cjs.js.map +1 -1
  57. package/dist/cjs/br-menu-link.cjs.entry.js +2 -2
  58. package/dist/cjs/br-menu-link.entry.cjs.js.map +1 -1
  59. package/dist/cjs/br-menu-list.cjs.entry.js +1 -1
  60. package/dist/cjs/br-menu-list.entry.cjs.js.map +1 -1
  61. package/dist/cjs/br-menu-logo.cjs.entry.js +2 -2
  62. package/dist/cjs/br-menu-logo.entry.cjs.js.map +1 -1
  63. package/dist/cjs/br-menu-social.cjs.entry.js +2 -2
  64. package/dist/cjs/br-menu-social.entry.cjs.js.map +1 -1
  65. package/dist/cjs/br-menu.cjs.entry.js +3 -3
  66. package/dist/cjs/br-menu.entry.cjs.js.map +1 -1
  67. package/dist/cjs/br-message.cjs.entry.js +2 -2
  68. package/dist/cjs/br-message.entry.cjs.js.map +1 -1
  69. package/dist/cjs/br-modal.cjs.entry.js +252 -12
  70. package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
  71. package/dist/cjs/br-pagination.cjs.entry.js +1 -1
  72. package/dist/cjs/br-pagination.entry.cjs.js.map +1 -1
  73. package/dist/cjs/br-scrim.cjs.entry.js +117 -24
  74. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  75. package/dist/cjs/br-select-option.cjs.entry.js +32 -0
  76. package/dist/cjs/br-select-option.entry.cjs.js.map +1 -0
  77. package/dist/cjs/br-sign-in.cjs.entry.js +2 -2
  78. package/dist/cjs/br-sign-in.entry.cjs.js.map +1 -1
  79. package/dist/cjs/br-skip-link.cjs.entry.js +2 -2
  80. package/dist/cjs/br-skip-link.entry.cjs.js.map +1 -1
  81. package/dist/cjs/br-skiplink-item.cjs.entry.js +2 -2
  82. package/dist/cjs/br-skiplink-item.entry.cjs.js.map +1 -1
  83. package/dist/cjs/br-step.br-step-item.entry.cjs.js.map +1 -1
  84. package/dist/cjs/br-step_2.cjs.entry.js +17 -86
  85. package/dist/cjs/br-switch.cjs.entry.js +2 -2
  86. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  87. package/dist/cjs/br-tab-item.cjs.entry.js +2 -2
  88. package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -1
  89. package/dist/cjs/br-tab.cjs.entry.js +76 -10
  90. package/dist/cjs/br-tab.entry.cjs.js.map +1 -1
  91. package/dist/cjs/br-table-cell.cjs.entry.js +2 -2
  92. package/dist/cjs/br-table-cell.entry.cjs.js.map +1 -1
  93. package/dist/cjs/br-table-header-cell.cjs.entry.js +2 -2
  94. package/dist/cjs/br-table-header-cell.entry.cjs.js.map +1 -1
  95. package/dist/cjs/br-table-header-row.cjs.entry.js +2 -2
  96. package/dist/cjs/br-table-header-row.entry.cjs.js.map +1 -1
  97. package/dist/cjs/br-table-row.cjs.entry.js +2 -2
  98. package/dist/cjs/br-table-row.entry.cjs.js.map +1 -1
  99. package/dist/cjs/br-table.cjs.entry.js +2 -2
  100. package/dist/cjs/br-table.entry.cjs.js.map +1 -1
  101. package/dist/cjs/br-tag.cjs.entry.js +2 -2
  102. package/dist/cjs/br-tag.entry.cjs.js.map +1 -1
  103. package/dist/cjs/br-textarea.cjs.entry.js +2 -2
  104. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  105. package/dist/cjs/br-tooltip.cjs.entry.js +2 -2
  106. package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
  107. package/dist/cjs/br-upload.cjs.entry.js +2 -2
  108. package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
  109. package/dist/cjs/br-wizard-panel.cjs.entry.js +2 -2
  110. package/dist/cjs/br-wizard-panel.entry.cjs.js.map +1 -1
  111. package/dist/cjs/br-wizard.cjs.entry.js +2 -2
  112. package/dist/cjs/br-wizard.entry.cjs.js.map +1 -1
  113. package/dist/cjs/index-CFIH680Y.js +8 -0
  114. package/dist/cjs/loader.cjs.js +1 -1
  115. package/dist/cjs/webcomponents.cjs.js +1 -1
  116. package/dist/collection/collection-manifest.json +2 -0
  117. package/dist/collection/components/avatar/avatar.css +1 -1
  118. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  119. package/dist/collection/components/breadcrumb/breadcrumb.js +124 -57
  120. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  121. package/dist/collection/components/breadcrumb/crumb/crumb.js +168 -0
  122. package/dist/collection/components/breadcrumb/crumb/crumb.js.map +1 -0
  123. package/dist/collection/components/button/button.css +1 -1
  124. package/dist/collection/components/button/button.js +1 -1
  125. package/dist/collection/components/card/card.css +1 -1
  126. package/dist/collection/components/card/card.js +1 -1
  127. package/dist/collection/components/checkbox/checkbox.css +1 -1
  128. package/dist/collection/components/checkbox/checkbox.js +1 -1
  129. package/dist/collection/components/checkgroup/checkgroup.css +1 -1
  130. package/dist/collection/components/checkgroup/checkgroup.js +1 -1
  131. package/dist/collection/components/collapse/collapse.css +1 -1
  132. package/dist/collection/components/collapse/collapse.js +1 -1
  133. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  134. package/dist/collection/components/datetime-picker/datetime-picker.js +1 -1
  135. package/dist/collection/components/divider/divider.css +1 -1
  136. package/dist/collection/components/divider/divider.js +1 -1
  137. package/dist/collection/components/dropdown/dropdown.css +1 -1
  138. package/dist/collection/components/dropdown/dropdown.js +1 -1
  139. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  140. package/dist/collection/components/footer/footer-category/footer-category.js +2 -2
  141. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  142. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  143. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  144. package/dist/collection/components/footer/footer-legal/footer-legal.js +1 -1
  145. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  146. package/dist/collection/components/footer/footer-logo/footer-logo.js +1 -1
  147. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  148. package/dist/collection/components/footer/footer-social/footer-social.js +1 -1
  149. package/dist/collection/components/footer/footer.css +1 -1
  150. package/dist/collection/components/footer/footer.js +1 -1
  151. package/dist/collection/components/header/header-function/header-function.css +1 -1
  152. package/dist/collection/components/header/header-function/header-function.js +1 -1
  153. package/dist/collection/components/header/header-link/header-link.css +1 -1
  154. package/dist/collection/components/header/header-link/header-link.js +1 -1
  155. package/dist/collection/components/header/header-list/header-list.css +1 -1
  156. package/dist/collection/components/header/header-list/header-list.js +1 -1
  157. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  158. package/dist/collection/components/header/header-logo/header-logo.js +1 -1
  159. package/dist/collection/components/header/header.css +1 -1
  160. package/dist/collection/components/header/header.js +1 -1
  161. package/dist/collection/components/icon/icon.css +1 -1
  162. package/dist/collection/components/icon/icon.js +1 -1
  163. package/dist/collection/components/input/input.css +1 -1
  164. package/dist/collection/components/input/input.js +1 -1
  165. package/dist/collection/components/item/item.css +1 -1
  166. package/dist/collection/components/item/item.js +1 -1
  167. package/dist/collection/components/list/list.css +1 -1
  168. package/dist/collection/components/list/list.js +1 -1
  169. package/dist/collection/components/loading/loading.css +1 -1
  170. package/dist/collection/components/loading/loading.js +1 -1
  171. package/dist/collection/components/magic-button/magic-button.css +1 -1
  172. package/dist/collection/components/magic-button/magic-button.js +1 -1
  173. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  174. package/dist/collection/components/menu/menu-header/menu-header.js +1 -1
  175. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  176. package/dist/collection/components/menu/menu-info/menu-info.js +1 -1
  177. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  178. package/dist/collection/components/menu/menu-item/menu-item.js +2 -2
  179. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  180. package/dist/collection/components/menu/menu-link/menu-link.js +1 -1
  181. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  182. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  183. package/dist/collection/components/menu/menu-logo/menu-logo.js +1 -1
  184. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  185. package/dist/collection/components/menu/menu-social/menu-social.js +1 -1
  186. package/dist/collection/components/menu/menu.css +1 -1
  187. package/dist/collection/components/menu/menu.js +2 -2
  188. package/dist/collection/components/message/message.css +1 -1
  189. package/dist/collection/components/message/message.js +1 -1
  190. package/dist/collection/components/modal/modal.css +1 -1
  191. package/dist/collection/components/modal/modal.js +266 -12
  192. package/dist/collection/components/modal/modal.js.map +1 -1
  193. package/dist/collection/components/pagination/pagination.css +1 -1
  194. package/dist/collection/components/radio/radio.css +1 -1
  195. package/dist/collection/components/radio/radio.js +1 -1
  196. package/dist/collection/components/scrim/scrim.css +1 -1
  197. package/dist/collection/components/scrim/scrim.js +116 -23
  198. package/dist/collection/components/scrim/scrim.js.map +1 -1
  199. package/dist/collection/components/select/select-option/select-option.js +122 -0
  200. package/dist/collection/components/select/select-option/select-option.js.map +1 -0
  201. package/dist/collection/components/select/select.css +1 -1
  202. package/dist/collection/components/select/select.js +151 -38
  203. package/dist/collection/components/select/select.js.map +1 -1
  204. package/dist/collection/components/sign-in/sign-in.css +1 -1
  205. package/dist/collection/components/sign-in/sign-in.js +1 -1
  206. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  207. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +1 -1
  208. package/dist/collection/components/skip-link/skip-link.css +1 -1
  209. package/dist/collection/components/skip-link/skip-link.js +1 -1
  210. package/dist/collection/components/step/step-item/step-item.css +1 -1
  211. package/dist/collection/components/step/step-item/step-item.js +16 -86
  212. package/dist/collection/components/step/step-item/step-item.js.map +1 -1
  213. package/dist/collection/components/step/step.css +1 -1
  214. package/dist/collection/components/step/step.js +2 -6
  215. package/dist/collection/components/step/step.js.map +1 -1
  216. package/dist/collection/components/switch/switch.css +1 -1
  217. package/dist/collection/components/switch/switch.js +1 -1
  218. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  219. package/dist/collection/components/tab/tab-item/tab-item.js +1 -1
  220. package/dist/collection/components/tab/tab.css +1 -1
  221. package/dist/collection/components/tab/tab.js +137 -17
  222. package/dist/collection/components/tab/tab.js.map +1 -1
  223. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  224. package/dist/collection/components/table/table-cell/table-cell.js +1 -1
  225. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  226. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  227. package/dist/collection/components/table/table-header-row/table-header-row.css +1 -1
  228. package/dist/collection/components/table/table-header-row/table-header-row.js +1 -1
  229. package/dist/collection/components/table/table-row/table-row.css +1 -1
  230. package/dist/collection/components/table/table-row/table-row.js +1 -1
  231. package/dist/collection/components/table/table.css +1 -1
  232. package/dist/collection/components/table/table.js +1 -1
  233. package/dist/collection/components/tag/tag.css +1 -1
  234. package/dist/collection/components/tag/tag.js +1 -1
  235. package/dist/collection/components/textarea/textarea.css +1 -1
  236. package/dist/collection/components/textarea/textarea.js +1 -1
  237. package/dist/collection/components/tooltip/tooltip.css +1 -1
  238. package/dist/collection/components/tooltip/tooltip.js +1 -1
  239. package/dist/collection/components/upload/upload.css +1 -1
  240. package/dist/collection/components/upload/upload.js +1 -1
  241. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  242. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +1 -1
  243. package/dist/collection/components/wizard/wizard.css +1 -1
  244. package/dist/collection/components/wizard/wizard.js +1 -1
  245. package/dist/collection/pages/scripts/menu.js +3 -1
  246. package/dist/collection/pages/scripts/pageLoader.js +4 -2
  247. package/dist/collection/value-accessors/angular-value-accessor-config.js +1 -1
  248. package/dist/collection/value-accessors/angular-value-accessor-config.js.map +1 -1
  249. package/dist/components/br-avatar.js +3 -3
  250. package/dist/components/br-breadcrumb.js +161 -90
  251. package/dist/components/br-breadcrumb.js.map +1 -1
  252. package/dist/components/br-button.js +3 -3
  253. package/dist/components/br-card.js +3 -3
  254. package/dist/components/br-checkbox.js +4 -4
  255. package/dist/components/br-checkgroup.js +11 -11
  256. package/dist/components/br-collapse.js +4 -4
  257. package/dist/components/br-crumb.d.ts +11 -0
  258. package/dist/components/br-crumb.js +80 -0
  259. package/dist/components/br-crumb.js.map +1 -0
  260. package/dist/components/br-datetime-picker.js +324 -324
  261. package/dist/components/br-divider.js +1 -1
  262. package/dist/components/br-dropdown.js +4 -4
  263. package/dist/components/br-footer-category.js +14 -14
  264. package/dist/components/br-footer-item.js +6 -6
  265. package/dist/components/br-footer-legal.js +9 -9
  266. package/dist/components/br-footer-logo.js +4 -4
  267. package/dist/components/br-footer-social.js +7 -7
  268. package/dist/components/br-footer.js +24 -24
  269. package/dist/components/br-header-function.js +6 -6
  270. package/dist/components/br-header-link.js +6 -6
  271. package/dist/components/br-header-list.js +8 -8
  272. package/dist/components/br-header-logo.js +13 -13
  273. package/dist/components/br-header.js +15 -15
  274. package/dist/components/br-icon.js +3 -3
  275. package/dist/components/br-input.js +3 -3
  276. package/dist/components/br-item.js +3 -3
  277. package/dist/components/br-list.js +4 -4
  278. package/dist/components/br-loading.js +7 -7
  279. package/dist/components/br-magic-button.js +7 -7
  280. package/dist/components/br-menu-header.js +14 -14
  281. package/dist/components/br-menu-info.js +5 -5
  282. package/dist/components/br-menu-item.js +3 -3
  283. package/dist/components/br-menu-link.js +9 -9
  284. package/dist/components/br-menu-list.js +4 -4
  285. package/dist/components/br-menu-logo.js +6 -6
  286. package/dist/components/br-menu-social.js +9 -9
  287. package/dist/components/br-menu.js +35 -35
  288. package/dist/components/br-message.js +5 -5
  289. package/dist/components/br-modal.js +230 -21
  290. package/dist/components/br-modal.js.map +1 -1
  291. package/dist/components/br-pagination.js +12 -12
  292. package/dist/components/br-radio.js +4 -4
  293. package/dist/components/br-scrim.js +122 -37
  294. package/dist/components/br-scrim.js.map +1 -1
  295. package/dist/components/br-select-option.d.ts +11 -0
  296. package/dist/components/br-select-option.js +72 -0
  297. package/dist/components/br-select-option.js.map +1 -0
  298. package/dist/components/br-select.js +4 -4
  299. package/dist/components/br-sign-in.js +11 -11
  300. package/dist/components/br-skip-link.js +9 -9
  301. package/dist/components/br-skiplink-item.js +14 -14
  302. package/dist/components/br-step-item.js +4 -4
  303. package/dist/components/br-step.js +3 -3
  304. package/dist/components/br-switch.js +7 -7
  305. package/dist/components/br-tab-item.js +7 -7
  306. package/dist/components/br-tab.js +82 -26
  307. package/dist/components/br-tab.js.map +1 -1
  308. package/dist/components/br-table-cell.js +5 -5
  309. package/dist/components/br-table-header-cell.js +8 -8
  310. package/dist/components/br-table-header-row.js +5 -5
  311. package/dist/components/br-table-row.js +5 -5
  312. package/dist/components/br-table.js +8 -8
  313. package/dist/components/br-tag.js +1 -1
  314. package/dist/components/br-textarea.js +4 -4
  315. package/dist/components/br-tooltip.js +14 -14
  316. package/dist/components/br-upload.js +34 -34
  317. package/dist/components/br-wizard-panel.js +6 -6
  318. package/dist/components/br-wizard.js +12 -12
  319. package/dist/components/br-wizard.js.map +1 -1
  320. package/dist/components/index.d.ts +4 -0
  321. package/dist/components/index.js +5 -1
  322. package/dist/components/{p-CJSXIVVe.js → p-B4_2a6sY.js} +9 -9
  323. package/dist/components/{p-DdjKNpU3.js → p-BVCWXitK.js} +157 -61
  324. package/dist/components/p-BVCWXitK.js.map +1 -0
  325. package/dist/components/p-BXMQkO62.js +399 -0
  326. package/dist/components/p-Bb4aDGZV.js +192 -0
  327. package/dist/components/p-BfM6USmd.js +138 -0
  328. package/dist/components/{p-BIJ6vVdB.js.map → p-BfM6USmd.js.map} +1 -1
  329. package/dist/components/{p-CwtLw60M.js → p-Bjywc5uG.js} +6 -6
  330. package/dist/components/p-BtGv7ZmW.js +229 -0
  331. package/dist/components/p-BtGv7ZmW.js.map +1 -0
  332. package/dist/components/{p-C_OI0BQu.js → p-BwHD1VKm.js} +6 -6
  333. package/dist/components/{p-Bqb7YtL0.js → p-C1NfZb6u.js} +19 -19
  334. package/dist/components/{p-DW63EY0U.js → p-C2apigAS.js} +13 -13
  335. package/dist/components/{p-5Bn_PU3B.js → p-CldlPwBq.js} +8 -8
  336. package/dist/components/p-DLCPJIh7.js +306 -0
  337. package/dist/components/p-DLCPJIh7.js.map +1 -0
  338. package/dist/components/{p-Bri6ECVa.js → p-DexVMiiX.js} +13 -13
  339. package/dist/components/p-DexVMiiX.js.map +1 -0
  340. package/dist/components/{p-DSkSDmzD.js → p-DozXPp1d.js} +3 -3
  341. package/dist/components/p-DzfbHHTf.js +136 -0
  342. package/dist/components/{p-CBj_WCYf.js → p-JsxUUux9.js} +6 -6
  343. package/dist/components/{p-lIb35q2K.js → p-p8k-sBQZ.js} +8 -8
  344. package/dist/custom-elements.json +1388 -710
  345. package/dist/esm/br-avatar.entry.js +2 -2
  346. package/dist/esm/br-avatar.entry.js.map +1 -1
  347. package/dist/esm/br-breadcrumb.entry.js +114 -62
  348. package/dist/esm/br-breadcrumb.entry.js.map +1 -1
  349. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  350. package/dist/esm/br-button_2.entry.js +5 -5
  351. package/dist/esm/br-card.entry.js +3 -3
  352. package/dist/esm/br-card.entry.js.map +1 -1
  353. package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
  354. package/dist/esm/br-checkbox_3.entry.js +7 -7
  355. package/dist/esm/br-checkgroup.entry.js +3 -3
  356. package/dist/esm/br-checkgroup.entry.js.map +1 -1
  357. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  358. package/dist/esm/br-collapse_2.entry.js +5 -5
  359. package/dist/esm/br-crumb.entry.js +36 -0
  360. package/dist/esm/br-crumb.entry.js.map +1 -0
  361. package/dist/esm/br-datetime-picker.entry.js +3 -3
  362. package/dist/esm/br-datetime-picker.entry.js.map +1 -1
  363. package/dist/esm/br-divider.entry.js +3 -3
  364. package/dist/esm/br-divider.entry.js.map +1 -1
  365. package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
  366. package/dist/esm/br-dropdown_2.entry.js +124 -41
  367. package/dist/esm/br-footer-category.entry.js +4 -4
  368. package/dist/esm/br-footer-category.entry.js.map +1 -1
  369. package/dist/esm/br-footer-item.entry.js +3 -3
  370. package/dist/esm/br-footer-item.entry.js.map +1 -1
  371. package/dist/esm/br-footer-legal.entry.js +3 -3
  372. package/dist/esm/br-footer-legal.entry.js.map +1 -1
  373. package/dist/esm/br-footer-logo.entry.js +3 -3
  374. package/dist/esm/br-footer-logo.entry.js.map +1 -1
  375. package/dist/esm/br-footer-social.entry.js +3 -3
  376. package/dist/esm/br-footer-social.entry.js.map +1 -1
  377. package/dist/esm/br-footer.entry.js +3 -3
  378. package/dist/esm/br-footer.entry.js.map +1 -1
  379. package/dist/esm/br-header-function.entry.js +3 -3
  380. package/dist/esm/br-header-function.entry.js.map +1 -1
  381. package/dist/esm/br-header-link.entry.js +3 -3
  382. package/dist/esm/br-header-link.entry.js.map +1 -1
  383. package/dist/esm/br-header-list.entry.js +3 -3
  384. package/dist/esm/br-header-list.entry.js.map +1 -1
  385. package/dist/esm/br-header-logo.entry.js +3 -3
  386. package/dist/esm/br-header-logo.entry.js.map +1 -1
  387. package/dist/esm/br-header.entry.js +3 -3
  388. package/dist/esm/br-header.entry.js.map +1 -1
  389. package/dist/esm/br-item.entry.js +3 -3
  390. package/dist/esm/br-item.entry.js.map +1 -1
  391. package/dist/esm/br-loading.entry.js +3 -3
  392. package/dist/esm/br-loading.entry.js.map +1 -1
  393. package/dist/esm/br-magic-button.entry.js +3 -3
  394. package/dist/esm/br-magic-button.entry.js.map +1 -1
  395. package/dist/esm/br-menu-header.entry.js +3 -3
  396. package/dist/esm/br-menu-header.entry.js.map +1 -1
  397. package/dist/esm/br-menu-info.entry.js +3 -3
  398. package/dist/esm/br-menu-info.entry.js.map +1 -1
  399. package/dist/esm/br-menu-item.entry.js +4 -4
  400. package/dist/esm/br-menu-item.entry.js.map +1 -1
  401. package/dist/esm/br-menu-link.entry.js +3 -3
  402. package/dist/esm/br-menu-link.entry.js.map +1 -1
  403. package/dist/esm/br-menu-list.entry.js +2 -2
  404. package/dist/esm/br-menu-list.entry.js.map +1 -1
  405. package/dist/esm/br-menu-logo.entry.js +3 -3
  406. package/dist/esm/br-menu-logo.entry.js.map +1 -1
  407. package/dist/esm/br-menu-social.entry.js +3 -3
  408. package/dist/esm/br-menu-social.entry.js.map +1 -1
  409. package/dist/esm/br-menu.entry.js +4 -4
  410. package/dist/esm/br-menu.entry.js.map +1 -1
  411. package/dist/esm/br-message.entry.js +3 -3
  412. package/dist/esm/br-message.entry.js.map +1 -1
  413. package/dist/esm/br-modal.entry.js +253 -13
  414. package/dist/esm/br-modal.entry.js.map +1 -1
  415. package/dist/esm/br-pagination.entry.js +2 -2
  416. package/dist/esm/br-pagination.entry.js.map +1 -1
  417. package/dist/esm/br-scrim.entry.js +118 -25
  418. package/dist/esm/br-scrim.entry.js.map +1 -1
  419. package/dist/esm/br-select-option.entry.js +30 -0
  420. package/dist/esm/br-select-option.entry.js.map +1 -0
  421. package/dist/esm/br-sign-in.entry.js +3 -3
  422. package/dist/esm/br-sign-in.entry.js.map +1 -1
  423. package/dist/esm/br-skip-link.entry.js +3 -3
  424. package/dist/esm/br-skip-link.entry.js.map +1 -1
  425. package/dist/esm/br-skiplink-item.entry.js +3 -3
  426. package/dist/esm/br-skiplink-item.entry.js.map +1 -1
  427. package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
  428. package/dist/esm/br-step_2.entry.js +18 -87
  429. package/dist/esm/br-switch.entry.js +3 -3
  430. package/dist/esm/br-switch.entry.js.map +1 -1
  431. package/dist/esm/br-tab-item.entry.js +3 -3
  432. package/dist/esm/br-tab-item.entry.js.map +1 -1
  433. package/dist/esm/br-tab.entry.js +77 -11
  434. package/dist/esm/br-tab.entry.js.map +1 -1
  435. package/dist/esm/br-table-cell.entry.js +3 -3
  436. package/dist/esm/br-table-cell.entry.js.map +1 -1
  437. package/dist/esm/br-table-header-cell.entry.js +3 -3
  438. package/dist/esm/br-table-header-cell.entry.js.map +1 -1
  439. package/dist/esm/br-table-header-row.entry.js +3 -3
  440. package/dist/esm/br-table-header-row.entry.js.map +1 -1
  441. package/dist/esm/br-table-row.entry.js +3 -3
  442. package/dist/esm/br-table-row.entry.js.map +1 -1
  443. package/dist/esm/br-table.entry.js +3 -3
  444. package/dist/esm/br-table.entry.js.map +1 -1
  445. package/dist/esm/br-tag.entry.js +3 -3
  446. package/dist/esm/br-tag.entry.js.map +1 -1
  447. package/dist/esm/br-textarea.entry.js +3 -3
  448. package/dist/esm/br-textarea.entry.js.map +1 -1
  449. package/dist/esm/br-tooltip.entry.js +3 -3
  450. package/dist/esm/br-tooltip.entry.js.map +1 -1
  451. package/dist/esm/br-upload.entry.js +3 -3
  452. package/dist/esm/br-upload.entry.js.map +1 -1
  453. package/dist/esm/br-wizard-panel.entry.js +3 -3
  454. package/dist/esm/br-wizard-panel.entry.js.map +1 -1
  455. package/dist/esm/br-wizard.entry.js +3 -3
  456. package/dist/esm/br-wizard.entry.js.map +1 -1
  457. package/dist/esm/{index-ByGJPTh2.js → index-CgnD6TrP.js} +11 -3
  458. package/dist/esm/{index-ByGJPTh2.js.map → index-CgnD6TrP.js.map} +1 -1
  459. package/dist/esm/loader.js +3 -3
  460. package/dist/esm/webcomponents.js +3 -3
  461. package/dist/hydrate/index.js +3543 -2986
  462. package/dist/hydrate/index.mjs +3543 -2986
  463. package/dist/types/components/breadcrumb/breadcrumb.d.ts +21 -15
  464. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +35 -0
  465. package/dist/types/components/modal/modal.d.ts +86 -3
  466. package/dist/types/components/scrim/scrim.d.ts +32 -2
  467. package/dist/types/components/select/select-option/select-option.d.ts +29 -0
  468. package/dist/types/components/select/select.d.ts +30 -10
  469. package/dist/types/components/step/step-item/step-item.d.ts +3 -14
  470. package/dist/types/components/tab/tab.d.ts +67 -7
  471. package/dist/types/components.d.ts +215 -12
  472. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
  473. package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -1
  474. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  475. package/dist/webcomponents/br-card.entry.esm.js.map +1 -1
  476. package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
  477. package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
  478. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  479. package/dist/webcomponents/br-crumb.entry.esm.js.map +1 -0
  480. package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
  481. package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
  482. package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
  483. package/dist/webcomponents/br-footer-category.entry.esm.js.map +1 -1
  484. package/dist/webcomponents/br-footer-item.entry.esm.js.map +1 -1
  485. package/dist/webcomponents/br-footer-legal.entry.esm.js.map +1 -1
  486. package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -1
  487. package/dist/webcomponents/br-footer-social.entry.esm.js.map +1 -1
  488. package/dist/webcomponents/br-footer.entry.esm.js.map +1 -1
  489. package/dist/webcomponents/br-header-function.entry.esm.js.map +1 -1
  490. package/dist/webcomponents/br-header-link.entry.esm.js.map +1 -1
  491. package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
  492. package/dist/webcomponents/br-header-logo.entry.esm.js.map +1 -1
  493. package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
  494. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  495. package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
  496. package/dist/webcomponents/br-magic-button.entry.esm.js.map +1 -1
  497. package/dist/webcomponents/br-menu-header.entry.esm.js.map +1 -1
  498. package/dist/webcomponents/br-menu-info.entry.esm.js.map +1 -1
  499. package/dist/webcomponents/br-menu-item.entry.esm.js.map +1 -1
  500. package/dist/webcomponents/br-menu-link.entry.esm.js.map +1 -1
  501. package/dist/webcomponents/br-menu-list.entry.esm.js.map +1 -1
  502. package/dist/webcomponents/br-menu-logo.entry.esm.js.map +1 -1
  503. package/dist/webcomponents/br-menu-social.entry.esm.js.map +1 -1
  504. package/dist/webcomponents/br-menu.entry.esm.js.map +1 -1
  505. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  506. package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
  507. package/dist/webcomponents/br-pagination.entry.esm.js.map +1 -1
  508. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  509. package/dist/webcomponents/br-select-option.entry.esm.js.map +1 -0
  510. package/dist/webcomponents/br-sign-in.entry.esm.js.map +1 -1
  511. package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
  512. package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
  513. package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
  514. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  515. package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -1
  516. package/dist/webcomponents/br-tab.entry.esm.js.map +1 -1
  517. package/dist/webcomponents/br-table-cell.entry.esm.js.map +1 -1
  518. package/dist/webcomponents/br-table-header-cell.entry.esm.js.map +1 -1
  519. package/dist/webcomponents/br-table-header-row.entry.esm.js.map +1 -1
  520. package/dist/webcomponents/br-table-row.entry.esm.js.map +1 -1
  521. package/dist/webcomponents/br-table.entry.esm.js.map +1 -1
  522. package/dist/webcomponents/br-tag.entry.esm.js.map +1 -1
  523. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  524. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  525. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
  526. package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
  527. package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
  528. package/dist/webcomponents/{p-f2ea0d7e.entry.js → p-020c598b.entry.js} +19 -19
  529. package/dist/webcomponents/{p-f2ea0d7e.entry.js.map → p-020c598b.entry.js.map} +1 -1
  530. package/dist/webcomponents/{p-83001853.entry.js → p-09a09974.entry.js} +6 -6
  531. package/dist/webcomponents/{p-83001853.entry.js.map → p-09a09974.entry.js.map} +1 -1
  532. package/dist/webcomponents/{p-bd803fec.entry.js → p-0be0b270.entry.js} +372 -372
  533. package/dist/webcomponents/{p-bd803fec.entry.js.map → p-0be0b270.entry.js.map} +1 -1
  534. package/dist/webcomponents/p-0d8da69a.entry.js +50 -0
  535. package/dist/webcomponents/{p-8b3688ab.entry.js → p-107ad6d3.entry.js} +6 -6
  536. package/dist/webcomponents/{p-01b4fecb.entry.js → p-10b0d158.entry.js} +6 -6
  537. package/dist/webcomponents/{p-f1fb559a.entry.js → p-13b1b500.entry.js} +7 -7
  538. package/dist/webcomponents/p-15561737.entry.js +428 -0
  539. package/dist/webcomponents/p-15561737.entry.js.map +1 -0
  540. package/dist/webcomponents/{p-c0cdb81f.entry.js → p-24dd7de0.entry.js} +9 -9
  541. package/dist/webcomponents/{p-e5875d3d.entry.js → p-26ec56f1.entry.js} +5 -5
  542. package/dist/webcomponents/{p-e5875d3d.entry.js.map → p-26ec56f1.entry.js.map} +1 -1
  543. package/dist/webcomponents/p-34cd69c7.entry.js +105 -0
  544. package/dist/webcomponents/{p-d856888c.entry.js.map → p-34cd69c7.entry.js.map} +1 -1
  545. package/dist/webcomponents/{p-c06a79b8.entry.js → p-3956e4ac.entry.js} +6 -6
  546. package/dist/webcomponents/{p-462c5647.entry.js → p-4071b981.entry.js} +4 -4
  547. package/dist/webcomponents/p-42f11872.entry.js +60 -0
  548. package/dist/webcomponents/{p-f16a5e27.entry.js → p-4ad3b8c9.entry.js} +8 -8
  549. package/dist/webcomponents/{p-de358dbe.entry.js → p-512385f0.entry.js} +7 -7
  550. package/dist/webcomponents/{p-cfecd64a.entry.js → p-53c2b2c2.entry.js} +34 -34
  551. package/dist/webcomponents/p-567b17e6.entry.js +346 -0
  552. package/dist/webcomponents/{p-46dfc3ee.entry.js → p-57d49488.entry.js} +5 -5
  553. package/dist/webcomponents/p-58a862f9.entry.js +44 -0
  554. package/dist/webcomponents/p-58a862f9.entry.js.map +1 -0
  555. package/dist/webcomponents/p-59d41342.entry.js +101 -0
  556. package/dist/webcomponents/{p-c1b0a116.entry.js → p-5b7f446c.entry.js} +7 -7
  557. package/dist/webcomponents/{p-bd978abf.entry.js → p-610c2e8e.entry.js} +4 -4
  558. package/dist/webcomponents/p-62651eba.entry.js +44 -0
  559. package/dist/webcomponents/{p-50f1b088.entry.js → p-6bf86e0b.entry.js} +6 -6
  560. package/dist/webcomponents/{p-10e25a32.entry.js → p-6f8abd26.entry.js} +41 -41
  561. package/dist/webcomponents/{p-a2eec4fb.entry.js → p-7a93d79b.entry.js} +123 -38
  562. package/dist/webcomponents/p-7a93d79b.entry.js.map +1 -0
  563. package/dist/webcomponents/p-7d8eb8ac.entry.js +40 -0
  564. package/dist/webcomponents/p-7d8eb8ac.entry.js.map +1 -0
  565. package/dist/webcomponents/{p-56aabe89.entry.js → p-857cfe62.entry.js} +19 -19
  566. package/dist/webcomponents/p-898d950f.entry.js +84 -0
  567. package/dist/webcomponents/{p-6ecb3439.entry.js → p-8a931bfe.entry.js} +9 -9
  568. package/dist/webcomponents/p-8b7cc3a9.entry.js +92 -0
  569. package/dist/webcomponents/{p-ca2d95f7.entry.js → p-946cc8f3.entry.js} +142 -48
  570. package/dist/webcomponents/p-946cc8f3.entry.js.map +1 -0
  571. package/dist/webcomponents/p-9bb74d81.entry.js +133 -0
  572. package/dist/webcomponents/{p-cfa86a23.entry.js.map → p-9bb74d81.entry.js.map} +1 -1
  573. package/dist/webcomponents/p-9fabdfb4.entry.js +75 -0
  574. package/dist/webcomponents/{p-9b50e6af.entry.js → p-9fe9f5d2.entry.js} +6 -6
  575. package/dist/webcomponents/{p-ByGJPTh2.js → p-CgnD6TrP.js} +3 -3
  576. package/dist/webcomponents/{p-ByGJPTh2.js.map → p-CgnD6TrP.js.map} +1 -1
  577. package/dist/webcomponents/p-a09cf1bc.entry.js +145 -0
  578. package/dist/webcomponents/{p-30af66b3.entry.js → p-ae4feb1e.entry.js} +9 -9
  579. package/dist/webcomponents/p-b020467b.entry.js +351 -0
  580. package/dist/webcomponents/p-b020467b.entry.js.map +1 -0
  581. package/dist/webcomponents/{p-336071a5.entry.js → p-b04b7996.entry.js} +13 -13
  582. package/dist/webcomponents/{p-d7070712.entry.js → p-b39c2ad1.entry.js} +5 -5
  583. package/dist/webcomponents/{p-4bb5aeab.entry.js → p-b8e4bc36.entry.js} +17 -17
  584. package/dist/webcomponents/{p-66d26793.entry.js → p-b9c38611.entry.js} +3 -3
  585. package/dist/webcomponents/p-c4e28f37.entry.js +446 -0
  586. package/dist/webcomponents/p-c4e28f37.entry.js.map +1 -0
  587. package/dist/webcomponents/{p-d090d412.entry.js → p-cf764a83.entry.js} +6 -6
  588. package/dist/webcomponents/{p-27eb10f9.entry.js → p-d75fccd1.entry.js} +13 -13
  589. package/dist/webcomponents/p-da17c570.entry.js +134 -0
  590. package/dist/webcomponents/{p-6a9d2a0b.entry.js → p-df170bb4.entry.js} +6 -6
  591. package/dist/webcomponents/p-e55b41b4.entry.js +159 -0
  592. package/dist/webcomponents/{p-7537c4ba.entry.js.map → p-e55b41b4.entry.js.map} +1 -1
  593. package/dist/webcomponents/{p-a365183a.entry.js → p-e58dbeef.entry.js} +6 -6
  594. package/dist/webcomponents/p-e5ff5232.entry.js +452 -0
  595. package/dist/webcomponents/p-e5ff5232.entry.js.map +1 -0
  596. package/dist/webcomponents/{p-007c0f38.entry.js → p-f2f32774.entry.js} +14 -14
  597. package/dist/webcomponents/{p-2be1c309.entry.js → p-f583b74c.entry.js} +7 -7
  598. package/dist/webcomponents/{p-2be1c309.entry.js.map → p-f583b74c.entry.js.map} +1 -1
  599. package/dist/webcomponents/{p-061dbde5.entry.js → p-f723c6fc.entry.js} +5 -5
  600. package/dist/webcomponents/p-f86da8f9.entry.js +94 -0
  601. package/dist/webcomponents/p-fc94c64c.entry.js +50 -0
  602. package/dist/webcomponents/webcomponents.esm.js +3 -3
  603. package/dist/webcomponents.html-custom-data.json +136 -79
  604. package/package.json +1 -1
  605. package/dist/components/p-AOxMWARt.js +0 -136
  606. package/dist/components/p-BIJ6vVdB.js +0 -138
  607. package/dist/components/p-B_YesJM8.js +0 -192
  608. package/dist/components/p-Bc03PTAW.js +0 -306
  609. package/dist/components/p-Bc03PTAW.js.map +0 -1
  610. package/dist/components/p-Bri6ECVa.js.map +0 -1
  611. package/dist/components/p-C3Rduy2t.js +0 -399
  612. package/dist/components/p-CWRBs6PD.js +0 -316
  613. package/dist/components/p-CWRBs6PD.js.map +0 -1
  614. package/dist/components/p-DdjKNpU3.js.map +0 -1
  615. package/dist/webcomponents/p-0e3a9a52.entry.js +0 -44
  616. package/dist/webcomponents/p-271fafec.entry.js +0 -94
  617. package/dist/webcomponents/p-2768bb52.entry.js +0 -92
  618. package/dist/webcomponents/p-2a6b20bb.entry.js +0 -60
  619. package/dist/webcomponents/p-2de59d45.entry.js +0 -145
  620. package/dist/webcomponents/p-3c75367e.entry.js +0 -50
  621. package/dist/webcomponents/p-492972fb.entry.js +0 -380
  622. package/dist/webcomponents/p-492972fb.entry.js.map +0 -1
  623. package/dist/webcomponents/p-4cc446e4.entry.js +0 -50
  624. package/dist/webcomponents/p-5710a3e9.entry.js +0 -529
  625. package/dist/webcomponents/p-5710a3e9.entry.js.map +0 -1
  626. package/dist/webcomponents/p-7537c4ba.entry.js +0 -159
  627. package/dist/webcomponents/p-8c0f167a.entry.js +0 -101
  628. package/dist/webcomponents/p-90401ecd.entry.js +0 -219
  629. package/dist/webcomponents/p-90401ecd.entry.js.map +0 -1
  630. package/dist/webcomponents/p-a2eec4fb.entry.js.map +0 -1
  631. package/dist/webcomponents/p-aa7635d4.entry.js +0 -346
  632. package/dist/webcomponents/p-b30ef853.entry.js +0 -75
  633. package/dist/webcomponents/p-b8e4b353.entry.js +0 -84
  634. package/dist/webcomponents/p-c5b716c8.entry.js +0 -134
  635. package/dist/webcomponents/p-c73b38c5.entry.js +0 -297
  636. package/dist/webcomponents/p-c73b38c5.entry.js.map +0 -1
  637. package/dist/webcomponents/p-ca2d95f7.entry.js.map +0 -1
  638. package/dist/webcomponents/p-cfa86a23.entry.js +0 -133
  639. package/dist/webcomponents/p-d856888c.entry.js +0 -105
  640. /package/dist/components/{p-CJSXIVVe.js.map → p-B4_2a6sY.js.map} +0 -0
  641. /package/dist/components/{p-C3Rduy2t.js.map → p-BXMQkO62.js.map} +0 -0
  642. /package/dist/components/{p-B_YesJM8.js.map → p-Bb4aDGZV.js.map} +0 -0
  643. /package/dist/components/{p-CwtLw60M.js.map → p-Bjywc5uG.js.map} +0 -0
  644. /package/dist/components/{p-C_OI0BQu.js.map → p-BwHD1VKm.js.map} +0 -0
  645. /package/dist/components/{p-Bqb7YtL0.js.map → p-C1NfZb6u.js.map} +0 -0
  646. /package/dist/components/{p-DW63EY0U.js.map → p-C2apigAS.js.map} +0 -0
  647. /package/dist/components/{p-5Bn_PU3B.js.map → p-CldlPwBq.js.map} +0 -0
  648. /package/dist/components/{p-DSkSDmzD.js.map → p-DozXPp1d.js.map} +0 -0
  649. /package/dist/components/{p-AOxMWARt.js.map → p-DzfbHHTf.js.map} +0 -0
  650. /package/dist/components/{p-CBj_WCYf.js.map → p-JsxUUux9.js.map} +0 -0
  651. /package/dist/components/{p-lIb35q2K.js.map → p-p8k-sBQZ.js.map} +0 -0
  652. /package/dist/webcomponents/{p-3c75367e.entry.js.map → p-0d8da69a.entry.js.map} +0 -0
  653. /package/dist/webcomponents/{p-8b3688ab.entry.js.map → p-107ad6d3.entry.js.map} +0 -0
  654. /package/dist/webcomponents/{p-01b4fecb.entry.js.map → p-10b0d158.entry.js.map} +0 -0
  655. /package/dist/webcomponents/{p-f1fb559a.entry.js.map → p-13b1b500.entry.js.map} +0 -0
  656. /package/dist/webcomponents/{p-c0cdb81f.entry.js.map → p-24dd7de0.entry.js.map} +0 -0
  657. /package/dist/webcomponents/{p-c06a79b8.entry.js.map → p-3956e4ac.entry.js.map} +0 -0
  658. /package/dist/webcomponents/{p-462c5647.entry.js.map → p-4071b981.entry.js.map} +0 -0
  659. /package/dist/webcomponents/{p-2a6b20bb.entry.js.map → p-42f11872.entry.js.map} +0 -0
  660. /package/dist/webcomponents/{p-f16a5e27.entry.js.map → p-4ad3b8c9.entry.js.map} +0 -0
  661. /package/dist/webcomponents/{p-de358dbe.entry.js.map → p-512385f0.entry.js.map} +0 -0
  662. /package/dist/webcomponents/{p-cfecd64a.entry.js.map → p-53c2b2c2.entry.js.map} +0 -0
  663. /package/dist/webcomponents/{p-aa7635d4.entry.js.map → p-567b17e6.entry.js.map} +0 -0
  664. /package/dist/webcomponents/{p-46dfc3ee.entry.js.map → p-57d49488.entry.js.map} +0 -0
  665. /package/dist/webcomponents/{p-8c0f167a.entry.js.map → p-59d41342.entry.js.map} +0 -0
  666. /package/dist/webcomponents/{p-c1b0a116.entry.js.map → p-5b7f446c.entry.js.map} +0 -0
  667. /package/dist/webcomponents/{p-bd978abf.entry.js.map → p-610c2e8e.entry.js.map} +0 -0
  668. /package/dist/webcomponents/{p-0e3a9a52.entry.js.map → p-62651eba.entry.js.map} +0 -0
  669. /package/dist/webcomponents/{p-50f1b088.entry.js.map → p-6bf86e0b.entry.js.map} +0 -0
  670. /package/dist/webcomponents/{p-10e25a32.entry.js.map → p-6f8abd26.entry.js.map} +0 -0
  671. /package/dist/webcomponents/{p-56aabe89.entry.js.map → p-857cfe62.entry.js.map} +0 -0
  672. /package/dist/webcomponents/{p-b8e4b353.entry.js.map → p-898d950f.entry.js.map} +0 -0
  673. /package/dist/webcomponents/{p-6ecb3439.entry.js.map → p-8a931bfe.entry.js.map} +0 -0
  674. /package/dist/webcomponents/{p-2768bb52.entry.js.map → p-8b7cc3a9.entry.js.map} +0 -0
  675. /package/dist/webcomponents/{p-b30ef853.entry.js.map → p-9fabdfb4.entry.js.map} +0 -0
  676. /package/dist/webcomponents/{p-9b50e6af.entry.js.map → p-9fe9f5d2.entry.js.map} +0 -0
  677. /package/dist/webcomponents/{p-2de59d45.entry.js.map → p-a09cf1bc.entry.js.map} +0 -0
  678. /package/dist/webcomponents/{p-30af66b3.entry.js.map → p-ae4feb1e.entry.js.map} +0 -0
  679. /package/dist/webcomponents/{p-336071a5.entry.js.map → p-b04b7996.entry.js.map} +0 -0
  680. /package/dist/webcomponents/{p-d7070712.entry.js.map → p-b39c2ad1.entry.js.map} +0 -0
  681. /package/dist/webcomponents/{p-4bb5aeab.entry.js.map → p-b8e4bc36.entry.js.map} +0 -0
  682. /package/dist/webcomponents/{p-66d26793.entry.js.map → p-b9c38611.entry.js.map} +0 -0
  683. /package/dist/webcomponents/{p-d090d412.entry.js.map → p-cf764a83.entry.js.map} +0 -0
  684. /package/dist/webcomponents/{p-27eb10f9.entry.js.map → p-d75fccd1.entry.js.map} +0 -0
  685. /package/dist/webcomponents/{p-c5b716c8.entry.js.map → p-da17c570.entry.js.map} +0 -0
  686. /package/dist/webcomponents/{p-6a9d2a0b.entry.js.map → p-df170bb4.entry.js.map} +0 -0
  687. /package/dist/webcomponents/{p-a365183a.entry.js.map → p-e58dbeef.entry.js.map} +0 -0
  688. /package/dist/webcomponents/{p-007c0f38.entry.js.map → p-f2f32774.entry.js.map} +0 -0
  689. /package/dist/webcomponents/{p-061dbde5.entry.js.map → p-f723c6fc.entry.js.map} +0 -0
  690. /package/dist/webcomponents/{p-271fafec.entry.js.map → p-f86da8f9.entry.js.map} +0 -0
  691. /package/dist/webcomponents/{p-4cc446e4.entry.js.map → p-fc94c64c.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"br-skip-link.entry.esm.js","sources":["../../packages/webcomponents/src/components/skip-link/skip-link.scss?tag=br-skip-link&encapsulation=shadow","../../packages/webcomponents/src/components/skip-link/skip-link.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/skiplink/skiplink\";\n\n:host {\n @include skiplink-configs;\n}\n\n.br-skiplink {\n &.top-left {\n left: var(--spacing-scale-3x) !important;\n right: auto !important;\n }\n\n &.top-center {\n left: 50% !important;\n right: auto !important;\n transform: translateX(-50%);\n\n &.full {\n transform: translateX(-50%) translateY(-100%);\n\n &.visible {\n transform: translateX(-50%) translateY(0);\n }\n }\n }\n\n &.top-right {\n left: auto !important;\n right: var(--spacing-scale-3x) !important;\n }\n\n &.visible {\n top: 0 !important;\n }\n\n &.full {\n br-list {\n display: flex;\n flex-direction: row;\n gap: 0;\n\n ::slotted(br-skiplink-item) {\n list-style: none;\n }\n }\n }\n\n &:not(.full) {\n min-width: var(--skiplink-min-width);\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/skip-link?tab=designer).\n *\n * @slot default - Slot para inserir os itens de navegação rápida (br-skiplink-item).\n *\n * @part container - Parte para o contêiner principal do componente skip-link, usada para estilização via ::part().\n */\n@Component({\n tag: 'br-skip-link',\n styleUrl: 'skip-link.scss',\n shadow: true,\n})\nexport class SkipLink {\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: HTMLBrSkipLinkElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define se o skip link apresenta um ou múltiplos itens visíveis.\n * - 'simple': Exibe apenas um item por vez.\n * - 'compound': Exibe uma lista com múltiplos itens.\n */\n @Prop({ reflect: true }) readonly variant: 'simple' | 'compound' = 'compound'\n\n /**\n * Define a posição do skip link na tela.\n * - 'top-left': Posicionado no canto superior esquerdo.\n * - 'top-center': Posicionado no centro superior.\n * - 'top-right': Posicionado no canto superior direito.\n */\n @Prop({ reflect: true }) readonly position: 'top-left' | 'top-center' | 'top-right' = 'top-left'\n\n /**\n * Define o z-index do componente.\n * Controla a ordem de empilhamento do componente na página.\n */\n @Prop({ reflect: true }) readonly zIndex: number | null = null\n\n /**\n * Exibe a contagem de itens no formato (1/4), (2/4), etc.\n * Quando `true`, cada item mostrará sua posição relativa ao total de itens.\n * Por padrão, é `true` para o modo simple e `false` para o modo compound.\n */\n @Prop({ reflect: true }) readonly showItemCount?: boolean\n\n /**\n * Estado interno que controla a visibilidade do componente.\n */\n @State() private isVisible: boolean = false\n\n /**\n * Define se o componente está em modo tela pequena\n */\n @State() private isSmallScreen: boolean = false\n\n /**\n * Define se o componente precisa mudar para modo simples por falta de espaço\n */\n @State() private needsSimpleMode: boolean = false\n\n /**\n * Largura do container pai\n */\n @State() private containerWidth: number = 0\n\n /**\n * ResizeObserver para monitorar mudanças no tamanho do container\n */\n private resizeObserver: ResizeObserver\n\n /**\n * Evento emitido quando um item do skiplink é ativado.\n * O evento contém informações sobre o item acionado e o elemento target.\n */\n @Event() brSkiplinkNavigation: EventEmitter<{ itemId: string; target: string }>\n\n /**\n * Evento emitido quando o skiplink se torna visível.\n */\n @Event() brDidShow: EventEmitter<void>\n\n /**\n * Evento emitido quando o skiplink se torna oculto.\n */\n @Event() brDidHide: EventEmitter<void>\n\n @Watch('zIndex')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--skiplink-layer', `${this.zIndex}`)\n }\n }\n\n /**\n * Observa mudanças nos estados que afetam o modo efetivo (simple/compound)\n * e atualiza as contagens dos itens quando necessário.\n */\n @Watch('needsSimpleMode')\n @Watch('isSmallScreen')\n watchModeChanges() {\n this.updateItemCounts()\n }\n\n /**\n * Listener para eventos de navegação dos itens filhos.\n */\n @Listen('brSkiplinkItemClick')\n handleItemNavigation(event: CustomEvent<{ itemId: string; target: string }>) {\n this.brSkiplinkNavigation.emit(event.detail)\n this.hide()\n }\n\n /**\n * Listener para evento de foco no componente.\n */\n @Listen('focusin')\n handleFocusIn() {\n if (!this.isVisible) {\n this.show()\n }\n }\n\n /**\n * Listener para evento de perda de foco no componente.\n */\n @Listen('focusout')\n handleFocusOut(event: FocusEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement | null\n if (relatedTarget === null || !this.el.contains(relatedTarget)) {\n this.hide()\n }\n }\n\n /**\n * Listener para a tecla Escape.\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.isVisible) {\n event.preventDefault()\n this.hide()\n ;(document.activeElement as HTMLElement)?.blur()\n return\n }\n }\n\n connectedCallback() {\n document.addEventListener('keydown', this.globalKeyHandler)\n\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(this.updateContainerSize)\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.resizeObserver.observe(parentElement)\n }\n }\n }\n\n disconnectedCallback() {\n document.removeEventListener('keydown', this.globalKeyHandler)\n\n if (this.resizeObserver !== undefined && this.resizeObserver !== null) {\n this.resizeObserver.disconnect()\n }\n }\n\n componentWillLoad() {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.containerWidth = parentElement.clientWidth\n }\n }\n\n componentDidLoad() {\n this.updateItemCounts()\n this.calculateItemsWidth()\n }\n\n /**\n * Manipulador global para atalhos de teclado Alt+[número].\n */\n private globalKeyHandler = (event: KeyboardEvent) => {\n if (event.altKey && /^[1-9]$/.test(event.key)) {\n const items = this.el.querySelectorAll('br-skiplink-item') as NodeListOf<HTMLBrSkiplinkItemElement>\n const targetItem = Array.from(items).find((item) => {\n const keyNumber = item.getAttribute('key-number')\n return keyNumber === event.key\n })\n\n if (targetItem && typeof targetItem.navigateToTarget === 'function') {\n event.preventDefault()\n targetItem.navigateToTarget()\n this.show()\n }\n }\n }\n\n /**\n * Calcula a largura total dos itens e atualiza os estados do componente\n */\n private updateContainerSize = (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n const width = entry.contentRect.width\n this.containerWidth = width\n this.isSmallScreen = width < 570\n\n if (!this.isSmallScreen) {\n this.calculateItemsWidth()\n } else {\n this.needsSimpleMode = false\n }\n }\n }\n\n /**\n * Calcula a largura total dos itens do skip-link e determina se deve usar modo simple ou compound.\n */\n private calculateItemsWidth() {\n requestAnimationFrame(() => {\n const items = this.el.querySelectorAll('br-skiplink-item') as NodeListOf<HTMLBrSkiplinkItemElement>\n\n if (items.length === 0 || this.isSmallScreen) return\n if (items.length > 4) {\n this.needsSimpleMode = true\n return\n }\n\n this.needsSimpleMode = false\n const totalWidth = this.sumItemsWidth(items)\n\n const availableWidth = this.calculateAvailableWidth()\n\n if (totalWidth > availableWidth) {\n this.needsSimpleMode = true\n }\n })\n }\n\n /**\n * Soma a largura de todos os itens do skip-link\n */\n private sumItemsWidth(items: NodeListOf<HTMLBrSkiplinkItemElement>): number {\n let total = 0\n\n items.forEach((item) => {\n const brItem = item.shadowRoot?.querySelector('br-item') as HTMLElement | null\n if (brItem === null) return\n\n const width = brItem.offsetWidth || brItem.scrollWidth || brItem.getBoundingClientRect().width\n total += width\n })\n\n return total\n }\n\n /**\n * Calcula a largura disponível descontando margens e margem de segurança\n */\n private calculateAvailableWidth(): number {\n if (this.containerWidth === 0) return 0\n\n // Obtém o valor da margem definida no CSS\n const computedStyle = getComputedStyle(this.el)\n const spacingValue = computedStyle.getPropertyValue('--spacing-scale-3x').trim()\n const margin = parseFloat(spacingValue) || 24\n\n // Margem de segurança para evitar quebras visuais\n const safetyMargin = 20\n\n // Desconta: margem esquerda + margem direita + margem de segurança\n return this.containerWidth - margin * 2 - safetyMargin\n }\n\n /**\n * Atualiza os atributos de contagem nos itens filhos.\n * Adiciona data-item-index e data-item-total em cada br-skiplink-item.\n * A contagem é exibida quando o componente está em modo simple (incluindo modo responsivo).\n */\n private updateItemCounts() {\n const effectiveVariant = this.isSmallScreen || this.needsSimpleMode ? 'simple' : this.variant\n const shouldShowCount = this.showItemCount !== undefined ? this.showItemCount : effectiveVariant === 'simple'\n const isCompoundMode = effectiveVariant === 'compound'\n\n const items = this.el.querySelectorAll('br-skiplink-item') as NodeListOf<HTMLBrSkiplinkItemElement>\n\n items.forEach((item) => {\n if (isCompoundMode) {\n item.classList.add('compound-mode')\n } else {\n item.classList.remove('compound-mode')\n }\n })\n\n if (!shouldShowCount) {\n items.forEach((item) => {\n item.removeAttribute('data-item-index')\n item.removeAttribute('data-item-total')\n })\n return\n }\n\n const total = items.length\n items.forEach((item, index) => {\n item.setAttribute('data-item-index', (index + 1).toString())\n item.setAttribute('data-item-total', total.toString())\n })\n }\n\n /**\n * Oculta o componente programaticamente.\n */\n @Method()\n async hide(): Promise<void> {\n const focusedElement = this.el.querySelector(':focus')\n if (focusedElement instanceof HTMLElement) {\n focusedElement.blur()\n }\n this.isVisible = false\n this.brDidHide.emit()\n return Promise.resolve()\n }\n\n /**\n * Exibe o componente programaticamente.\n */\n @Method()\n async show(): Promise<void> {\n this.isVisible = true\n\n await new Promise((resolve) => requestAnimationFrame(resolve))\n\n const firstItem = this.el.querySelector('br-skiplink-item') as HTMLBrSkiplinkItemElement | null\n if (firstItem !== null) {\n if (typeof firstItem.itemFocus === 'function') {\n await firstItem.itemFocus()\n } else {\n const focusableElement = firstItem.shadowRoot?.querySelector('a, button') as HTMLElement | null\n if (focusableElement !== null) {\n focusableElement.focus()\n }\n }\n }\n\n this.brDidShow.emit()\n return Promise.resolve()\n }\n\n private getEffectivePosition(): 'top-left' | 'top-center' | 'top-right' {\n if (this.isSmallScreen) {\n return 'top-left'\n }\n return this.position\n }\n\n private getCssClassMap(): CssClassMap {\n const effectiveVariant = this.isSmallScreen || this.needsSimpleMode ? 'simple' : this.variant\n const effectivePosition = this.getEffectivePosition()\n\n return {\n 'br-skiplink': true,\n full: effectiveVariant === 'compound',\n [effectivePosition]: true,\n visible: this.isVisible,\n }\n }\n\n render() {\n return (\n <Host>\n <nav part=\"container\" class={this.getCssClassMap()} id={this.customId}>\n <br-list>\n <slot></slot>\n </br-list>\n </nav>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-skip-link.entry.esm.js","sources":["../../packages/webcomponents/src/components/skip-link/skip-link.scss?tag=br-skip-link&encapsulation=shadow","../../packages/webcomponents/src/components/skip-link/skip-link.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/skiplink/skiplink\";\n\n:host {\n @include skiplink-configs;\n}\n\n.br-skiplink {\n &.top-left {\n left: var(--spacing-scale-3x) !important;\n right: auto !important;\n }\n\n &.top-center {\n left: 50% !important;\n right: auto !important;\n transform: translateX(-50%);\n\n &.full {\n transform: translateX(-50%) translateY(-100%);\n\n &.visible {\n transform: translateX(-50%) translateY(0);\n }\n }\n }\n\n &.top-right {\n left: auto !important;\n right: var(--spacing-scale-3x) !important;\n }\n\n &.visible {\n top: 0 !important;\n }\n\n &.full {\n br-list {\n display: flex;\n flex-direction: row;\n gap: 0;\n\n ::slotted(br-skiplink-item) {\n list-style: none;\n }\n }\n }\n\n &:not(.full) {\n min-width: var(--skiplink-min-width);\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/skip-link?tab=designer).\n *\n * @slot default - Slot para inserir os itens de navegação rápida (br-skiplink-item).\n *\n * @part container - Parte para o contêiner principal do componente skip-link, usada para estilização via ::part().\n */\n@Component({\n tag: 'br-skip-link',\n styleUrl: 'skip-link.scss',\n shadow: true,\n})\nexport class SkipLink {\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: HTMLBrSkipLinkElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define se o skip link apresenta um ou múltiplos itens visíveis.\n * - 'simple': Exibe apenas um item por vez.\n * - 'compound': Exibe uma lista com múltiplos itens.\n */\n @Prop({ reflect: true }) readonly variant: 'simple' | 'compound' = 'compound'\n\n /**\n * Define a posição do skip link na tela.\n * - 'top-left': Posicionado no canto superior esquerdo.\n * - 'top-center': Posicionado no centro superior.\n * - 'top-right': Posicionado no canto superior direito.\n */\n @Prop({ reflect: true }) readonly position: 'top-left' | 'top-center' | 'top-right' = 'top-left'\n\n /**\n * Define o z-index do componente.\n * Controla a ordem de empilhamento do componente na página.\n */\n @Prop({ reflect: true }) readonly zIndex: number | null = null\n\n /**\n * Exibe a contagem de itens no formato (1/4), (2/4), etc.\n * Quando `true`, cada item mostrará sua posição relativa ao total de itens.\n * Por padrão, é `true` para o modo simple e `false` para o modo compound.\n */\n @Prop({ reflect: true }) readonly showItemCount?: boolean\n\n /**\n * Estado interno que controla a visibilidade do componente.\n */\n @State() private isVisible: boolean = false\n\n /**\n * Define se o componente está em modo tela pequena\n */\n @State() private isSmallScreen: boolean = false\n\n /**\n * Define se o componente precisa mudar para modo simples por falta de espaço\n */\n @State() private needsSimpleMode: boolean = false\n\n /**\n * Largura do container pai\n */\n @State() private containerWidth: number = 0\n\n /**\n * ResizeObserver para monitorar mudanças no tamanho do container\n */\n private resizeObserver: ResizeObserver\n\n /**\n * Evento emitido quando um item do skiplink é ativado.\n * O evento contém informações sobre o item acionado e o elemento target.\n */\n @Event() brSkiplinkNavigation: EventEmitter<{ itemId: string; target: string }>\n\n /**\n * Evento emitido quando o skiplink se torna visível.\n */\n @Event() brDidShow: EventEmitter<void>\n\n /**\n * Evento emitido quando o skiplink se torna oculto.\n */\n @Event() brDidHide: EventEmitter<void>\n\n @Watch('zIndex')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--skiplink-layer', `${this.zIndex}`)\n }\n }\n\n /**\n * Observa mudanças nos estados que afetam o modo efetivo (simple/compound)\n * e atualiza as contagens dos itens quando necessário.\n */\n @Watch('needsSimpleMode')\n @Watch('isSmallScreen')\n watchModeChanges() {\n this.updateItemCounts()\n }\n\n /**\n * Listener para eventos de navegação dos itens filhos.\n */\n @Listen('brSkiplinkItemClick')\n handleItemNavigation(event: CustomEvent<{ itemId: string; target: string }>) {\n this.brSkiplinkNavigation.emit(event.detail)\n this.hide()\n }\n\n /**\n * Listener para evento de foco no componente.\n */\n @Listen('focusin')\n handleFocusIn() {\n if (!this.isVisible) {\n this.show()\n }\n }\n\n /**\n * Listener para evento de perda de foco no componente.\n */\n @Listen('focusout')\n handleFocusOut(event: FocusEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement | null\n if (relatedTarget === null || !this.el.contains(relatedTarget)) {\n this.hide()\n }\n }\n\n /**\n * Listener para a tecla Escape.\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.isVisible) {\n event.preventDefault()\n this.hide()\n ;(document.activeElement as HTMLElement)?.blur()\n return\n }\n }\n\n connectedCallback() {\n document.addEventListener('keydown', this.globalKeyHandler)\n\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(this.updateContainerSize)\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.resizeObserver.observe(parentElement)\n }\n }\n }\n\n disconnectedCallback() {\n document.removeEventListener('keydown', this.globalKeyHandler)\n\n if (this.resizeObserver !== undefined && this.resizeObserver !== null) {\n this.resizeObserver.disconnect()\n }\n }\n\n componentWillLoad() {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.containerWidth = parentElement.clientWidth\n }\n }\n\n componentDidLoad() {\n this.updateItemCounts()\n this.calculateItemsWidth()\n }\n\n /**\n * Manipulador global para atalhos de teclado Alt+[número].\n */\n private globalKeyHandler = (event: KeyboardEvent) => {\n if (event.altKey && /^[1-9]$/.test(event.key)) {\n const items = this.el.querySelectorAll('br-skiplink-item') as NodeListOf<HTMLBrSkiplinkItemElement>\n const targetItem = Array.from(items).find((item) => {\n const keyNumber = item.getAttribute('key-number')\n return keyNumber === event.key\n })\n\n if (targetItem && typeof targetItem.navigateToTarget === 'function') {\n event.preventDefault()\n targetItem.navigateToTarget()\n this.show()\n }\n }\n }\n\n /**\n * Calcula a largura total dos itens e atualiza os estados do componente\n */\n private updateContainerSize = (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n const width = entry.contentRect.width\n this.containerWidth = width\n this.isSmallScreen = width < 570\n\n if (!this.isSmallScreen) {\n this.calculateItemsWidth()\n } else {\n this.needsSimpleMode = false\n }\n }\n }\n\n /**\n * Calcula a largura total dos itens do skip-link e determina se deve usar modo simple ou compound.\n */\n private calculateItemsWidth() {\n requestAnimationFrame(() => {\n const items = this.el.querySelectorAll('br-skiplink-item') as NodeListOf<HTMLBrSkiplinkItemElement>\n\n if (items.length === 0 || this.isSmallScreen) return\n if (items.length > 4) {\n this.needsSimpleMode = true\n return\n }\n\n this.needsSimpleMode = false\n const totalWidth = this.sumItemsWidth(items)\n\n const availableWidth = this.calculateAvailableWidth()\n\n if (totalWidth > availableWidth) {\n this.needsSimpleMode = true\n }\n })\n }\n\n /**\n * Soma a largura de todos os itens do skip-link\n */\n private sumItemsWidth(items: NodeListOf<HTMLBrSkiplinkItemElement>): number {\n let total = 0\n\n items.forEach((item) => {\n const brItem = item.shadowRoot?.querySelector('br-item') as HTMLElement | null\n if (brItem === null) return\n\n const width = brItem.offsetWidth || brItem.scrollWidth || brItem.getBoundingClientRect().width\n total += width\n })\n\n return total\n }\n\n /**\n * Calcula a largura disponível descontando margens e margem de segurança\n */\n private calculateAvailableWidth(): number {\n if (this.containerWidth === 0) return 0\n\n // Obtém o valor da margem definida no CSS\n const computedStyle = getComputedStyle(this.el)\n const spacingValue = computedStyle.getPropertyValue('--spacing-scale-3x').trim()\n const margin = parseFloat(spacingValue) || 24\n\n // Margem de segurança para evitar quebras visuais\n const safetyMargin = 20\n\n // Desconta: margem esquerda + margem direita + margem de segurança\n return this.containerWidth - margin * 2 - safetyMargin\n }\n\n /**\n * Atualiza os atributos de contagem nos itens filhos.\n * Adiciona data-item-index e data-item-total em cada br-skiplink-item.\n * A contagem é exibida quando o componente está em modo simple (incluindo modo responsivo).\n */\n private updateItemCounts() {\n const effectiveVariant = this.isSmallScreen || this.needsSimpleMode ? 'simple' : this.variant\n const shouldShowCount = this.showItemCount !== undefined ? this.showItemCount : effectiveVariant === 'simple'\n const isCompoundMode = effectiveVariant === 'compound'\n\n const items = this.el.querySelectorAll('br-skiplink-item') as NodeListOf<HTMLBrSkiplinkItemElement>\n\n items.forEach((item) => {\n if (isCompoundMode) {\n item.classList.add('compound-mode')\n } else {\n item.classList.remove('compound-mode')\n }\n })\n\n if (!shouldShowCount) {\n items.forEach((item) => {\n item.removeAttribute('data-item-index')\n item.removeAttribute('data-item-total')\n })\n return\n }\n\n const total = items.length\n items.forEach((item, index) => {\n item.setAttribute('data-item-index', (index + 1).toString())\n item.setAttribute('data-item-total', total.toString())\n })\n }\n\n /**\n * Oculta o componente programaticamente.\n */\n @Method()\n async hide(): Promise<void> {\n const focusedElement = this.el.querySelector(':focus')\n if (focusedElement instanceof HTMLElement) {\n focusedElement.blur()\n }\n this.isVisible = false\n this.brDidHide.emit()\n return Promise.resolve()\n }\n\n /**\n * Exibe o componente programaticamente.\n */\n @Method()\n async show(): Promise<void> {\n this.isVisible = true\n\n await new Promise((resolve) => requestAnimationFrame(resolve))\n\n const firstItem = this.el.querySelector('br-skiplink-item') as HTMLBrSkiplinkItemElement | null\n if (firstItem !== null) {\n if (typeof firstItem.itemFocus === 'function') {\n await firstItem.itemFocus()\n } else {\n const focusableElement = firstItem.shadowRoot?.querySelector('a, button') as HTMLElement | null\n if (focusableElement !== null) {\n focusableElement.focus()\n }\n }\n }\n\n this.brDidShow.emit()\n return Promise.resolve()\n }\n\n private getEffectivePosition(): 'top-left' | 'top-center' | 'top-right' {\n if (this.isSmallScreen) {\n return 'top-left'\n }\n return this.position\n }\n\n private getCssClassMap(): CssClassMap {\n const effectiveVariant = this.isSmallScreen || this.needsSimpleMode ? 'simple' : this.variant\n const effectivePosition = this.getEffectivePosition()\n\n return {\n 'br-skiplink': true,\n full: effectiveVariant === 'compound',\n [effectivePosition]: true,\n visible: this.isVisible,\n }\n }\n\n render() {\n return (\n <Host>\n <nav part=\"container\" class={this.getCssClassMap()} id={this.customId}>\n <br-list>\n <slot></slot>\n </br-list>\n </nav>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-skiplink-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/skip-link/skip-link-item/skip-link-item.scss?tag=br-skiplink-item&encapsulation=shadow","../../packages/webcomponents/src/components/skip-link/skip-link-item/skip-link-item.tsx"],"sourcesContent":[":host {\n display: contents;\n\n br-item {\n box-shadow: var(--skiplink-shadow);\n display: inline-flex;\n min-width: var(--skiplink-min-width);\n position: absolute;\n top: -100vh;\n transition: top var(--skiplink-duration) var(--skiplink-timing-function);\n white-space: nowrap;\n width: auto;\n\n &:focus-within {\n top: 0;\n }\n }\n}\n\n:host(.compound-mode) {\n br-item {\n box-shadow: none;\n min-width: 0;\n position: relative;\n top: 0;\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/skip-link?tab=designer).\n *\n * @slot default - Slot para o texto do link de navegação rápida.\n * @slot tag - Slot para personalizar a tag numérica do atalho de teclado, exibindo o valor de key-number por padrão.\n */\n@Component({\n tag: 'br-skiplink-item',\n styleUrl: 'skip-link-item.scss',\n shadow: true,\n})\nexport class SkipLinkItem {\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: HTMLBrSkiplinkItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * ID do elemento de destino ou seletor CSS.\n * Este é o elemento para o qual o usuário será levado ao ativar este item.\n */\n @Prop({ reflect: true }) readonly target!: string\n\n /**\n * Número da tecla para acesso rápido.\n * Permite que o usuário ative este item pressionando Alt+[keyNumber].\n * Aceita valores de 1 a 9.\n * Esta propriedade implementa uma alternativa ao accessKey nativa,\n * fornecendo um atalho de teclado consistente e acessível.\n */\n @Prop({ reflect: true }) readonly keyNumber?: number\n\n /**\n * ID personalizado.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Controla a visibilidade da tag numérica.\n * Quando `true`, a tag numérica não será exibida, mesmo que `keyNumber` esteja definido.\n * O atalho de teclado continua funcionando, apenas a indicação visual é ocultada.\n */\n @Prop({ reflect: true }) readonly hideTag: boolean = false\n\n /**\n * Estado interno que armazena o índice do item (1, 2, 3...).\n * Definido automaticamente pelo componente pai.\n */\n @State() private itemIndex: number | null = null\n\n /**\n * Estado interno que armazena o total de itens.\n * Definido automaticamente pelo componente pai.\n */\n @State() private itemTotal: number | null = null\n\n /**\n * MutationObserver para monitorar mudanças nos atributos de contagem.\n * Observa quando o componente pai define data-item-index e data-item-total.\n */\n private mutationObserver: MutationObserver | null = null\n\n /**\n * Evento emitido quando o item é clicado/ativado.\n * O evento contém informações sobre o item e o target.\n */\n @Event() brSkiplinkItemClick: EventEmitter<{ itemId: string; target: string }>\n\n /**\n * Evento emitido quando o item recebe foco.\n */\n @Event() brSkiplinkItemFocus: EventEmitter<{ itemId: string }>\n\n /**\n * Move o foco para este item.\n */\n @Method()\n async itemFocus(): Promise<void> {\n const brItemElement = this.el.shadowRoot?.querySelector('br-item') as HTMLElement | null\n\n if (brItemElement !== null) {\n await new Promise((resolve) => requestAnimationFrame(resolve))\n\n const brItemShadowRoot = brItemElement.shadowRoot\n if (brItemShadowRoot !== null) {\n const focusableElement = brItemShadowRoot.querySelector('a, button') as HTMLElement | null\n if (focusableElement !== null) {\n focusableElement.focus()\n this.brSkiplinkItemFocus.emit({ itemId: this.customId })\n return\n }\n }\n\n brItemElement.focus()\n this.brSkiplinkItemFocus.emit({ itemId: this.customId })\n }\n }\n\n /**\n * Navega para o target definido.\n * Move o foco para o elemento alvo e ajusta a rolagem da página se necessário.\n */\n @Method()\n async navigateToTarget(): Promise<void> {\n try {\n const targetElement = document.querySelector(this.target) as HTMLElement | null\n\n if (targetElement !== null) {\n targetElement.setAttribute('tabindex', '-1')\n targetElement.focus()\n\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' })\n\n this.brSkiplinkItemClick.emit({\n itemId: this.customId,\n target: this.target,\n })\n } else {\n console.warn(`Skip Link: Target element \"${this.target}\" not found`)\n }\n } catch (error) {\n console.error('Skip Link: Error navigating to target', error)\n }\n }\n\n /**\n * Listener para cliques no item.\n */\n @Listen('click')\n handleClick(_event: MouseEvent) {\n this.navigateToTarget()\n }\n\n /**\n * Listener para teclas Enter, Space e atalho Alt+[keyNumber].\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n const skipLink = this.el.closest('br-skip-link') as HTMLBrSkipLinkElement\n if (skipLink !== null && typeof skipLink.hide === 'function') {\n event.preventDefault()\n skipLink.hide()\n }\n return\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.navigateToTarget()\n return\n }\n\n // atalho Alt+[keyNumber]\n if (event.altKey && this.keyNumber && event.key === this.keyNumber.toString()) {\n event.preventDefault()\n this.navigateToTarget()\n return\n }\n }\n\n /**\n * Listener para foco no item.\n */\n @Listen('focus')\n handleFocus() {\n this.brSkiplinkItemFocus.emit({ itemId: this.customId })\n }\n\n componentWillLoad() {\n this.updateItemCount()\n }\n\n componentDidLoad() {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.type === 'attributes' &&\n (mutation.attributeName === 'data-item-index' || mutation.attributeName === 'data-item-total')\n ) {\n this.updateItemCount()\n }\n })\n })\n\n this.mutationObserver.observe(this.el, {\n attributes: true,\n attributeFilter: ['data-item-index', 'data-item-total'],\n })\n }\n\n disconnectedCallback() {\n if (this.mutationObserver !== null && this.mutationObserver !== undefined) {\n this.mutationObserver.disconnect()\n this.mutationObserver = null\n }\n }\n\n /**\n * Atualiza a contagem de itens lendo os atributos definidos pelo componente pai.\n */\n private updateItemCount() {\n const indexAttr = this.el.getAttribute('data-item-index')\n const totalAttr = this.el.getAttribute('data-item-total')\n\n if (indexAttr !== null && totalAttr !== null) {\n this.itemIndex = parseInt(indexAttr, 10)\n this.itemTotal = parseInt(totalAttr, 10)\n } else {\n this.itemIndex = null\n this.itemTotal = null\n }\n }\n\n /**\n * Retorna a string de contagem no formato (X/Y) se disponível.\n */\n private getItemCountText(): string | null {\n if (this.itemIndex !== null && this.itemTotal !== null) {\n return ` (${this.itemIndex}/${this.itemTotal})`\n }\n return null\n }\n\n render() {\n const itemCountText = this.getItemCountText()\n\n return (\n <Host>\n <br-item\n href={this.target}\n id={this.customId}\n density=\"large\"\n aria-keyshortcuts={this.keyNumber !== undefined ? `Alt+${this.keyNumber}` : undefined}\n >\n <slot></slot>\n {itemCountText && <span aria-hidden=\"true\">{itemCountText}</span>}\n {this.keyNumber && !this.hideTag && (\n <slot name=\"tag\" slot=\"end\">\n <br-tag class=\"ml-1 text\" color=\"bg-interactive\">\n {this.keyNumber}\n </br-tag>\n </slot>\n )}\n </br-item>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-skiplink-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/skip-link/skip-link-item/skip-link-item.scss?tag=br-skiplink-item&encapsulation=shadow","../../packages/webcomponents/src/components/skip-link/skip-link-item/skip-link-item.tsx"],"sourcesContent":[":host {\n display: contents;\n\n br-item {\n box-shadow: var(--skiplink-shadow);\n display: inline-flex;\n min-width: var(--skiplink-min-width);\n position: absolute;\n top: -100vh;\n transition: top var(--skiplink-duration) var(--skiplink-timing-function);\n white-space: nowrap;\n width: auto;\n\n &:focus-within {\n top: 0;\n }\n }\n}\n\n:host(.compound-mode) {\n br-item {\n box-shadow: none;\n min-width: 0;\n position: relative;\n top: 0;\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/skip-link?tab=designer).\n *\n * @slot default - Slot para o texto do link de navegação rápida.\n * @slot tag - Slot para personalizar a tag numérica do atalho de teclado, exibindo o valor de key-number por padrão.\n */\n@Component({\n tag: 'br-skiplink-item',\n styleUrl: 'skip-link-item.scss',\n shadow: true,\n})\nexport class SkipLinkItem {\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: HTMLBrSkiplinkItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * ID do elemento de destino ou seletor CSS.\n * Este é o elemento para o qual o usuário será levado ao ativar este item.\n */\n @Prop({ reflect: true }) readonly target!: string\n\n /**\n * Número da tecla para acesso rápido.\n * Permite que o usuário ative este item pressionando Alt+[keyNumber].\n * Aceita valores de 1 a 9.\n * Esta propriedade implementa uma alternativa ao accessKey nativa,\n * fornecendo um atalho de teclado consistente e acessível.\n */\n @Prop({ reflect: true }) readonly keyNumber?: number\n\n /**\n * ID personalizado.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Controla a visibilidade da tag numérica.\n * Quando `true`, a tag numérica não será exibida, mesmo que `keyNumber` esteja definido.\n * O atalho de teclado continua funcionando, apenas a indicação visual é ocultada.\n */\n @Prop({ reflect: true }) readonly hideTag: boolean = false\n\n /**\n * Estado interno que armazena o índice do item (1, 2, 3...).\n * Definido automaticamente pelo componente pai.\n */\n @State() private itemIndex: number | null = null\n\n /**\n * Estado interno que armazena o total de itens.\n * Definido automaticamente pelo componente pai.\n */\n @State() private itemTotal: number | null = null\n\n /**\n * MutationObserver para monitorar mudanças nos atributos de contagem.\n * Observa quando o componente pai define data-item-index e data-item-total.\n */\n private mutationObserver: MutationObserver | null = null\n\n /**\n * Evento emitido quando o item é clicado/ativado.\n * O evento contém informações sobre o item e o target.\n */\n @Event() brSkiplinkItemClick: EventEmitter<{ itemId: string; target: string }>\n\n /**\n * Evento emitido quando o item recebe foco.\n */\n @Event() brSkiplinkItemFocus: EventEmitter<{ itemId: string }>\n\n /**\n * Move o foco para este item.\n */\n @Method()\n async itemFocus(): Promise<void> {\n const brItemElement = this.el.shadowRoot?.querySelector('br-item') as HTMLElement | null\n\n if (brItemElement !== null) {\n await new Promise((resolve) => requestAnimationFrame(resolve))\n\n const brItemShadowRoot = brItemElement.shadowRoot\n if (brItemShadowRoot !== null) {\n const focusableElement = brItemShadowRoot.querySelector('a, button') as HTMLElement | null\n if (focusableElement !== null) {\n focusableElement.focus()\n this.brSkiplinkItemFocus.emit({ itemId: this.customId })\n return\n }\n }\n\n brItemElement.focus()\n this.brSkiplinkItemFocus.emit({ itemId: this.customId })\n }\n }\n\n /**\n * Navega para o target definido.\n * Move o foco para o elemento alvo e ajusta a rolagem da página se necessário.\n */\n @Method()\n async navigateToTarget(): Promise<void> {\n try {\n const targetElement = document.querySelector(this.target) as HTMLElement | null\n\n if (targetElement !== null) {\n targetElement.setAttribute('tabindex', '-1')\n targetElement.focus()\n\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' })\n\n this.brSkiplinkItemClick.emit({\n itemId: this.customId,\n target: this.target,\n })\n } else {\n console.warn(`Skip Link: Target element \"${this.target}\" not found`)\n }\n } catch (error) {\n console.error('Skip Link: Error navigating to target', error)\n }\n }\n\n /**\n * Listener para cliques no item.\n */\n @Listen('click')\n handleClick(_event: MouseEvent) {\n this.navigateToTarget()\n }\n\n /**\n * Listener para teclas Enter, Space e atalho Alt+[keyNumber].\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n const skipLink = this.el.closest('br-skip-link') as HTMLBrSkipLinkElement\n if (skipLink !== null && typeof skipLink.hide === 'function') {\n event.preventDefault()\n skipLink.hide()\n }\n return\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.navigateToTarget()\n return\n }\n\n // atalho Alt+[keyNumber]\n if (event.altKey && this.keyNumber && event.key === this.keyNumber.toString()) {\n event.preventDefault()\n this.navigateToTarget()\n return\n }\n }\n\n /**\n * Listener para foco no item.\n */\n @Listen('focus')\n handleFocus() {\n this.brSkiplinkItemFocus.emit({ itemId: this.customId })\n }\n\n componentWillLoad() {\n this.updateItemCount()\n }\n\n componentDidLoad() {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.type === 'attributes' &&\n (mutation.attributeName === 'data-item-index' || mutation.attributeName === 'data-item-total')\n ) {\n this.updateItemCount()\n }\n })\n })\n\n this.mutationObserver.observe(this.el, {\n attributes: true,\n attributeFilter: ['data-item-index', 'data-item-total'],\n })\n }\n\n disconnectedCallback() {\n if (this.mutationObserver !== null && this.mutationObserver !== undefined) {\n this.mutationObserver.disconnect()\n this.mutationObserver = null\n }\n }\n\n /**\n * Atualiza a contagem de itens lendo os atributos definidos pelo componente pai.\n */\n private updateItemCount() {\n const indexAttr = this.el.getAttribute('data-item-index')\n const totalAttr = this.el.getAttribute('data-item-total')\n\n if (indexAttr !== null && totalAttr !== null) {\n this.itemIndex = parseInt(indexAttr, 10)\n this.itemTotal = parseInt(totalAttr, 10)\n } else {\n this.itemIndex = null\n this.itemTotal = null\n }\n }\n\n /**\n * Retorna a string de contagem no formato (X/Y) se disponível.\n */\n private getItemCountText(): string | null {\n if (this.itemIndex !== null && this.itemTotal !== null) {\n return ` (${this.itemIndex}/${this.itemTotal})`\n }\n return null\n }\n\n render() {\n const itemCountText = this.getItemCountText()\n\n return (\n <Host>\n <br-item\n href={this.target}\n id={this.customId}\n density=\"large\"\n aria-keyshortcuts={this.keyNumber !== undefined ? `Alt+${this.keyNumber}` : undefined}\n >\n <slot></slot>\n {itemCountText && <span aria-hidden=\"true\">{itemCountText}</span>}\n {this.keyNumber && !this.hideTag && (\n <slot name=\"tag\" slot=\"end\">\n <br-tag class=\"ml-1 text\" color=\"bg-interactive\">\n {this.keyNumber}\n </br-tag>\n </slot>\n )}\n </br-item>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-step.br-step-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/step/step.scss?tag=br-step&encapsulation=shadow","../../packages/webcomponents/src/components/step/step.tsx","../../packages/webcomponents/src/components/step/step-item/step-item.scss?tag=br-step-item&encapsulation=shadow","../../packages/webcomponents/src/components/step/step-item/step-item.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/step/step\";\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n\n .step-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n overflow: auto;\n flex-grow: 1;\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus) var(--focus-offset);\n }\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .vertical {\n flex-direction: column;\n justify-content: center;\n\n &.label-right {\n align-items: start;\n padding-left: 20px;\n }\n\n &.label-left {\n align-items: start;\n padding-right: 20px;\n }\n }\n}\n\n::slotted([disabled]) {\n opacity: 1 !important;\n}\n\n::slotted(.linha) {\n width: 100px;\n height: 2px;\n display: flex;\n align-items: center;\n background-color: var(--interactive);\n}\n\n::slotted(*) {\n flex: 1;\n min-width: 0;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/step?tab=designer).\n *\n * @slot default - Slot para os itens do step (br-step-item), aceitando apenas esse componente.\n *\n * @part container - Parte para o contêiner principal envolvendo todos os step-items, usada para estilizar layout geral via ::part().\n *\n */\n@Component({\n tag: 'br-step',\n styleUrl: 'step.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Step {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrStepElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * propriedade responsável por definir a orientação do componente Step\n */\n @Prop({ reflect: true }) layout: 'horizontal' | 'vertical' = 'horizontal'\n /**\n *\n * define o passo que começará destacado\n */\n @Prop({ reflect: true }) initialStep: string = '0'\n /**\n *\n * Propriedade que define a posição onde o texto de destaque,label, ficará localizado no stepItem\n */\n @Prop({ reflect: true }) labelPosition?: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n /**\n *\n * Propriedade que define o tipo de conteúdo a ser exibido dentro do componente step e stepItem\n */\n @Prop({ reflect: true }) contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n /**\n *\n * Propriedade que define o tipo de comportamento que o componente Step deverá seguir\n */\n @Prop({ reflect: true }) mode: 'controller' | 'step' = 'step'\n\n /**\n *\n * Propriedade que define o tipo de progressão de etapas que o step vai executar\n */\n @Prop({ reflect: true }) progressionType: 'linear' | 'nonlinear' = 'nonlinear'\n\n @State() activeStep: number = 0\n @State() stepItems: Element[] = []\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidLoad: EventEmitter<void>\n componentDidLoad() {\n this.setStepItemsLabelPosition()\n this.setStepItemsContentType()\n this.setStepItemsDefaultContent()\n this.setStepItemsMode(this.mode)\n if (this.mode === 'step') {\n this.configureTimeLine()\n }\n if (this.progressionType === 'linear') {\n this.configureLinearProgression()\n }\n if (this.activeStep <= this.stepItems.length - 1) {\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n } else {\n console.warn('br-step initial-step attribute has value more than number of step-items provided')\n }\n this.brDidLoad.emit()\n }\n\n /**\n * Emite um evento antes do componente ser renderizado pela primeira vez, permitindo a preparação de dados ou inicializações necessárias.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdwillLoad) para mais detalhes.\n */\n @Event() brWillLoad: EventEmitter<void>\n componentWillLoad() {\n this.activeStep = Number(this.initialStep)\n this.getStepItemsElements()\n this.brWillLoad.emit()\n }\n\n /**\n * Emite um evento para indicar se o componente deve ser atualizado ou não.\n * Este evento é chamado antes de qualquer atualização do componente para decidir se a atualização deve prosseguir.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentshouldupdate) para mais detalhes.\n */\n @Event() brShouldUpdate: EventEmitter<void>\n\n /**\n * Emite um evento quando o step ativo muda.\n * O evento carrega o índice do novo step ativo (0-based).\n */\n @Event() brStepChange: EventEmitter<{ activeStep: number }>\n\n /** Controla atualizações pendentes para evitar race conditions */\n private updateScheduled = false\n\n componentShouldUpdate(newValue: number, oldValue: number, stateName: string) {\n if (stateName === 'activeStep' && oldValue !== newValue) {\n if (!this.updateScheduled) {\n this.updateScheduled = true\n requestAnimationFrame(() => {\n this.updateScheduled = false\n this.updateStepItemsActiveState(oldValue)\n })\n }\n this.brShouldUpdate.emit()\n this.brStepChange.emit({ activeStep: this.activeStep })\n }\n }\n\n /**\n * Atualiza os atributos 'active' dos step-items de forma segura\n * Chamado via requestAnimationFrame para garantir que o DOM é atualizado após batched state changes\n */\n private updateStepItemsActiveState(previousActiveStep: number) {\n const outOfRange = previousActiveStep > this.stepItems.length - 1\n\n if (!outOfRange) {\n this.stepItems[previousActiveStep].removeAttribute('active')\n }\n\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n }\n\n /**\n * listener para ouvir o evento de click no componente step\n * Através desse listener o componente define qual será o proximo passo do step que terá o estado ativo\n */\n\n @Listen('click', { capture: true })\n handleClick(event) {\n const targetElement = event.target as Element\n if (targetElement.getAttribute('slot') !== null) {\n const slotItem = this.stepItems.findIndex((element) => element.lastElementChild === targetElement)\n this.activeStep = slotItem\n return\n }\n const item = this.stepItems.findIndex((element) => element === targetElement)\n this.activeStep = item\n }\n\n private getStepItemsElements() {\n const slotItems = Array.from(this.el.children)\n const firstChildrenContentTypeValue = slotItems[0].getAttribute('content-type')\n const childrenHaveConsistentContentType = slotItems.every(\n (item) => item.getAttribute('content-type') === firstChildrenContentTypeValue\n )\n const childrenHaveConsistentTagName = slotItems.every((item) => item.tagName.toLowerCase() === 'br-step-item')\n if (childrenHaveConsistentContentType && childrenHaveConsistentTagName) {\n this.stepItems = slotItems\n return\n }\n if (!childrenHaveConsistentTagName) {\n throw new Error('br-step component must have as child elements only br-step-items components')\n }\n if (!childrenHaveConsistentContentType) {\n throw new Error('br-step must have all child elements with same content type attribute value')\n }\n }\n\n private setStepItemsLabelPosition() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (this.labelPosition !== undefined) {\n elements.setLabelPosition(this.labelPosition)\n }\n })\n }\n\n private setStepItemsDefaultContent() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const indicatorContent = index + 1\n elements.setContent(indicatorContent.toString())\n })\n }\n\n private async setStepItemsContentType() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n await Promise.all(slotItems.map((element) => element.setContentType(this.contentType)))\n slotItems.forEach((elements, index) => {\n elements.setAttribute('aria-posinset', `${index + 1}`)\n elements.setAttribute('aria-setsize', `${slotItems.length}`)\n })\n }\n\n private setStepItemsMode(mode: 'controller' | 'step') {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (mode === 'controller') {\n elements.setMode(this.mode)\n elements.setContentType('no-content')\n if (this.layout !== 'horizontal') {\n this.layout = 'horizontal'\n }\n elements.handleShowTimeLine(false, this.layout)\n elements.removeAttribute('label')\n }\n })\n }\n\n private getStepItemPosition(stepItemsElements: HTMLBrStepItemElement[], index) {\n if (index === 0) {\n return 'first'\n }\n if (index > 0 && index < stepItemsElements.length - 1) {\n return 'middle'\n }\n return 'last'\n }\n\n private configureTimeLine() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const elementPosition = this.getStepItemPosition(slotItems, index)\n elements.setStepItemPositionStatus(elementPosition)\n elements.handleShowTimeLine(true, this.layout)\n })\n }\n\n private configureLinearProgression() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n if (index > 0) {\n elements.setAttribute('disabled', 'true')\n }\n })\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por avançar para o próximo passo e atualizar o valor do estado activeStep\n */\n @Method()\n async ProceedToNextStep() {\n if (this.activeStep + 1 < this.stepItems.length) {\n this.activeStep = this.activeStep + 1\n if (this.progressionType === 'linear') {\n this.stepItems[this.activeStep].removeAttribute('disabled')\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por retornar ao passo anterior e atualizar o valor do estado activeStep\n */\n @Method()\n async BackToPreviousStep() {\n if (this.activeStep - 1 >= 0) {\n this.activeStep = this.activeStep - 1\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que integra um componente externo ao componente Step, permitindo sinalizar validações ou destacar a etapa com estado ativo.\n */\n @Method()\n async StepValidation(validationStatus: 'success' | 'info' | 'danger' | 'warning') {\n this.stepItems[this.activeStep].setAttribute('highlight', validationStatus)\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que permite a um componente externo obter a etapa com o estado ativo do componente Step.\n */\n @Method()\n async GetActiveStep() {\n return this.activeStep\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-step': true,\n 'step-container': true,\n horizontal: this.layout === 'horizontal',\n vertical: this.layout === 'vertical',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n }\n }\n\n private AriaObjectContent = {\n step: 'Modo etapas ',\n controller: 'Modo controle ',\n default: 'passos com conteúdo numérico ',\n 'br-icon': 'passos com conteúdo que possuem icones ',\n slotted: 'passos com conteúdo customizados ',\n 'no-content': 'passos que apresentam conteúdo por meio de tooltip ',\n linear: 'progressão linear ',\n nonlinear: 'progressão não linear ',\n vertical: 'com layout vertical ',\n horizontal: 'com layout horizontal ',\n }\n\n private getAreaLabel(): string {\n let ariaLabel = ' Lista de Opções '\n if (this.mode !== 'controller') {\n ariaLabel +=\n this.AriaObjectContent[this.mode] +\n this.AriaObjectContent[this.contentType] +\n this.AriaObjectContent[this.progressionType] +\n this.AriaObjectContent[this.layout]\n } else {\n ariaLabel += this.AriaObjectContent[this.mode]\n }\n return ariaLabel\n }\n\n render() {\n return (\n <Host>\n {this.stepItems.length > 0 && (\n <div\n part=\"container\"\n role=\"listbox\"\n tabIndex={0}\n aria-orientation={this.layout}\n aria-label={this.getAreaLabel()}\n class={this.getCssClassMap()}\n >\n <slot></slot>\n </div>\n )}\n </Host>\n )\n }\n}\n",":host {\n display: flex;\n}\n\n.disabled-host {\n pointer-events: none;\n}\n\n.step-button {\n position: relative;\n z-index: 2;\n}\n\n.mode-controller {\n border: 1px solid var(--gray-20);\n width: 14px;\n height: 14px;\n cursor: pointer;\n border-radius: 50%;\n background-color: var(--gray-20);\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus) var(--focus-offset);\n }\n\n &:hover {\n background-image: linear-gradient(\n rgb(var(--interactive-rgb), var(--hover)),\n rgb(var(--interactive-rgb), var(--hover))\n );\n }\n}\n\n[data-active].mode-controller {\n border: 1px solid var(--gray-20);\n background-color: var(--active);\n}\n\n.step-item-container-horizontal {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n\n &.label-top::after {\n content: \"\";\n left: 0;\n bottom: 50%;\n }\n\n &.label-bottom::after {\n content: \"\";\n left: 0;\n bottom: 86%;\n }\n\n &.label-left::after {\n bottom: 68%;\n width: 70%;\n left: 26%;\n }\n\n &.label-right::after {\n bottom: 68%;\n width: 58%;\n left: 42%;\n }\n}\n\n.step-item-container-vertical {\n display: flex;\n flex-direction: row;\n max-width: max-content;\n\n &::after {\n content: \"\";\n position: relative;\n height: 100%;\n background-color: var(--interactive);\n display: block;\n transform: translate(50%, 20px);\n z-index: -1;\n width: 2px;\n right: 50%;\n }\n\n &.label-bottom::after {\n top: 50%;\n height: 70%;\n }\n\n &.label-top::after {\n top: 50%;\n height: 70%;\n }\n\n &.label-left::after {\n right: 16%;\n top: 12%;\n }\n\n &.label-right::after {\n top: 12%;\n right: 86%;\n }\n}\n\n.step-item-content {\n display: flex;\n position: relative;\n flex-grow: 1;\n margin: auto;\n min-height: 100px;\n min-width: 80px;\n justify-content: center;\n\n &.label-top {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n &.label-bottom {\n flex-direction: column;\n align-items: center;\n }\n\n &.label-left {\n flex-direction: row-reverse;\n align-items: center;\n background-color: #fff;\n }\n\n &.label-right {\n flex-direction: row;\n align-items: center;\n background-color: #fff;\n }\n}\n\n.controller {\n display: flex;\n position: relative;\n flex-grow: 1;\n margin: 0 5px;\n min-height: unset;\n min-width: unset;\n}\n\n.step-item-container-vertical .step-item-content.label-right,\n.step-item-container-vertical .step-item-content.label-left {\n background-color: transparent;\n}\n\n.step-item-indicator-area {\n display: inline-block;\n position: relative;\n z-index: 1;\n\n .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 4;\n border-radius: 50%;\n transform: translate(25px, -5px);\n color: white;\n font-size: 16px;\n font-weight: 900;\n width: 29px;\n height: 29px;\n }\n\n .icon.no-content {\n transform: translate(0, 0);\n width: 41px;\n height: 41px;\n }\n}\n\n[data-active].step-item-indicator-area .icon.no-content {\n transform: translate(5px, 5px);\n width: 30px;\n height: 30px;\n}\n\n.success {\n background-color: var(--success);\n}\n\n.info {\n background-color: var(--info);\n}\n\n.danger {\n background-color: var(--danger);\n}\n\n.warning {\n background-color: var(--warning);\n}\n\n.step-item-label-area {\n padding: 0;\n display: flex;\n\n &.label-left {\n padding: 0 14px;\n }\n\n &.label-right {\n padding: 0 14px;\n }\n}\n\n.step-item-label-area > span {\n font-size: var(--font-size-scale-up-01);\n // Permite que o wizard customize font-weight e color via CSS Custom Properties\n font-weight: var(--step-label-font-weight, var(--font-weight-medium));\n color: var(--step-label-color, var(--interactive));\n}\n\n.vertical.step-item-label-area {\n &.label-top {\n padding-top: 14px;\n }\n\n &.label-bottom {\n padding-bottom: 14px;\n }\n}\n\n.horizontal.step-item-label-area {\n &.label-top {\n padding-bottom: 14px;\n }\n\n &.label-bottom {\n padding-top: 14px;\n }\n}\n\n.step-item-container-vertical .step-item-content.label-right.last .step-item-indicator-area::after,\n.step-item-container-vertical .step-item-content.label-left.last .step-item-indicator-area::after,\n.step-item-container-horizontal .step-item-content.label-bottom.last .step-item-indicator-area::after {\n display: none;\n}\n\n.step-item-container-vertical .step-item-content.label-top .step-item-label-area,\n.step-item-container-vertical .step-item-content.label-bottom .step-item-label-area {\n flex-direction: column;\n align-items: center;\n}\n\n.step-item-container-horizontal::after {\n content: \"\";\n position: relative;\n height: 2px;\n background-color: var(--interactive);\n display: block;\n transform: translate(50%, 20px);\n z-index: -1;\n width: 100%;\n left: 0;\n bottom: 75%;\n}\n\n.step-item-container-horizontal.last::after,\n.step-item-container-horizontal.controller::after,\n.step-item-container-vertical.last::after {\n content: \"\";\n height: 0;\n display: none;\n}\n\n.step-item-container-horizontal .step-item-content.label-left.timeline.last::after {\n content: \"\";\n position: absolute;\n width: 160px;\n height: 2px;\n background-color: var(--interactive);\n display: inline-block;\n right: calc(100% - 80px);\n bottom: 50%;\n z-index: -1;\n}\n\n.content-type-br-icon {\n color: var(--interactive);\n font-size: 16px;\n font-weight: 900;\n}\n\n[data-active] .content-type-br-icon {\n color: var(--interactive);\n color: #fff;\n}\n\n.button-controller {\n width: 15px;\n height: 15px;\n}\n\n/* Desktops grandes (até 1440px) */\n@media (width <= 1440px) {\n .step-item-container-horizontal.label-left::after {\n width: 50%;\n left: 48%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 58%;\n left: 48%;\n }\n}\n\n/* Laptops (até 1024px) */\n@media (width <= 1024px) {\n .step-item-container-horizontal.label-left::after {\n width: 34%;\n left: 58%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Tablets (até 768px) */\n@media (width <= 768px) {\n .step-item-container-horizontal.label-left::after {\n width: 22%;\n left: 76%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares grandes (até 425px) */\n@media (width <= 425px) {\n .step-item-container-horizontal.label-left::after {\n width: 20%;\n left: 80%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares médios (até 375px) */\n@media (width <= 375px) {\n .step-item-container-horizontal.label-left::after {\n width: 18%;\n left: 82%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares pequenos (até 320px) */\n@media (width <= 320px) {\n .step-item-container-horizontal.label-left::after {\n width: 16%;\n left: 85%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/step?tab=designer).\n *\n * @slot label-area - Slot para conteúdo customizado dentro do botão do item do step.\n *\n * @part item-container - Parte para o contêiner externo do item do step, usada para estilizar posicionamento e espaçamento via ::part().\n * @part item-content - Parte para o contêiner interno com indicador visual e label, usada para estilizar conteúdo via ::part().\n * @part label - Parte para o contêiner do texto da etapa, usada para estilizar tipografia e cor via ::part().\n *\n */\n@Component({\n tag: 'br-step-item',\n styleUrl: 'step-item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class StepItem {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrStepItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Propriedade que define o conteúdo do texto auxiliar de realce do item de Step.\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Propriedade que define o tipo de ícone de destaque exibido pelo item Step, com quatro opções disponíveis: \"success\", \"info\", \"danger\" e \"warning\".\n */\n @Prop({ reflect: true }) highlight?: 'success' | 'info' | 'danger' | 'warning'\n\n /**\n * Propriedade que define se o item Step está com estado ativo.\n */\n @Prop({ reflect: true }) active: boolean = false\n\n /**\n * Propriedade que define se o item Step está com estado desativado..\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Propriedade Define o nome do ícone do componente BRIcon que será exibido como conteúdo do step item, propriedade funciona apenas quando o state contentType assume o valor br-icon.\n */\n @Prop({ reflect: true }) brIconName?: string = ''\n /**\n * Propriedade Define o nome do ícone o texto de acessibilidade apresentando quando o tipo de conteúdo for o br-icon\n */\n\n @Prop({ reflect: true }) brIconAria: string = ''\n\n @State() showTimeLine: boolean = false\n @State() stepItemPositionStatus: 'first' | 'middle' | 'last' = 'first'\n @State() stepLayout: 'horizontal' | 'vertical' = 'horizontal'\n @State() labelPosition: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n @State() contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n @State() mode: 'controller' | 'step' = 'step'\n @State() content: string = ''\n @State() ariaLabelContent: string = ''\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brWillRender: EventEmitter<void>\n componentWillRender() {\n let accessibilityContent = ''\n let activeItem = ''\n if (this.contentType === 'slotted') {\n const slotedContent = this.el.lastElementChild\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${slotedContent.textContent} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${slotedContent.textContent} ${this.highLightAriaLabel[this.highlight]}`\n this.ariaLabelContent = accessibilityContent\n return\n }\n if (this.contentType === 'br-icon') {\n accessibilityContent =\n `passo ${this.content} ` + this.brIconAria + this.label + this.highLightAriaLabel[this.highlight]\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n return\n } else {\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${this.highLightAriaLabel[this.highlight]}`\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n }\n }\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidRender: EventEmitter<void>\n componentDidRender() {\n const button = this.el.shadowRoot.getElementById('indicator-area').lastElementChild.shadowRoot\n if (button !== null) {\n button.lastElementChild.setAttribute('role', 'option')\n button.lastElementChild.setAttribute('aria-selected', `${this.active}`)\n button.lastElementChild.setAttribute('aria-label', this.ariaLabelContent)\n }\n }\n\n /**\n * Watch que observa o valor da propriedade active, e ao alterar seu valor este método altera o valor do campo de acessibilidade aria-selected\n */\n @Watch('active')\n watchItemIsActive(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n const button = this.el.shadowRoot.getElementById('indicator-area').lastElementChild.shadowRoot\n if (button !== null) {\n button.lastElementChild.setAttribute('aria-selected', `${this.active}`)\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que indica a posição do step item, ele serve para setar o state stepItemPositionStatus do componente\n */\n @Method()\n async setStepItemPositionStatus(value: 'first' | 'middle' | 'last') {\n this.stepItemPositionStatus = value\n }\n\n /**\n * Método que define a orientação do stepItem e controla a exibição da linha do tempo após o componente.\n */\n @Method()\n async handleShowTimeLine(value: boolean, layout) {\n this.showTimeLine = value\n this.stepLayout = layout\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor ao estado que define onde o label, o texto de destaque, irá ficar localizado\n */\n @Method()\n async setLabelPosition(value: 'top' | 'right' | 'bottom' | 'left') {\n this.labelPosition = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o tipo de conteúdo apresentado dentro do componente stepItem\n */\n @Method()\n async setContentType(value: 'default' | 'br-icon' | 'no-content' | 'slotted') {\n this.contentType = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o modo como o componente irá se comportar e exibir seu estilo.\n */\n @Method()\n async setMode(value: 'controller' | 'step') {\n this.mode = value\n }\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá ser exibido dentro do componente stepItem\n */\n @Method()\n async setContent(value: string) {\n this.content = value\n }\n\n private getStepContainerClassMap(): CssClassMap {\n return {\n 'step-item-container-horizontal': this.stepLayout === 'horizontal',\n 'step-item-container-vertical': this.stepLayout === 'vertical',\n last: this.stepItemPositionStatus == 'last',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n 'label-bottom': this.labelPosition === 'bottom' && this.label !== '',\n controller: this.mode === 'controller',\n 'disabled-div': true,\n }\n }\n\n private getStepItemContentClassMap(): CssClassMap {\n return {\n 'step-item-content': true,\n 'label-bottom': this.labelPosition === 'bottom',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n timeline: this.showTimeLine === true,\n middle: this.stepItemPositionStatus === 'middle',\n first: this.stepItemPositionStatus === 'first',\n controller: this.mode === 'controller',\n }\n }\n\n private getStepItemIndicatorAreaClassMap(): CssClassMap {\n return {\n 'step-item-indicator-area': true,\n }\n }\n\n private getStepItemLabelAreaClassMap(): CssClassMap {\n return {\n 'step-item-label-area': true,\n vertical: this.stepLayout === 'vertical',\n horizontal: this.stepLayout === 'horizontal',\n 'label-bottom': this.labelPosition === 'bottom',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n 'no-label': this.label === '',\n }\n }\n\n private getHighlightClass(): CssClassMap {\n return {\n icon: true,\n success: this.highlight === 'success',\n info: this.highlight === 'info',\n warning: this.highlight === 'warning',\n danger: this.highlight === 'danger',\n 'no-content': this.contentType === 'no-content',\n }\n }\n\n private getStepItemIndicatorClass(): CssClassMap {\n return {\n 'step-button': true,\n controller: this.mode === 'controller',\n 'disabled-host': this.disabled,\n }\n }\n\n private highLightAriaLabel = {\n success: 'passo completo',\n info: 'passo com item informativo',\n warning: 'passo com alerta',\n danger: 'passo com erro',\n undefined: '',\n }\n\n private IconsName = {\n success: 'fa-check',\n info: 'fa-info-circle',\n warning: 'fa-exclamation-triangle',\n danger: 'fa-times',\n }\n\n render() {\n return (\n <Host>\n <div id=\"item-container\" part=\"item-container\" class={this.getStepContainerClassMap()}>\n <div id=\"item-content\" part=\"item-content\" class={this.getStepItemContentClassMap()}>\n <div id=\"indicator-area\" data-active={this.active} class={this.getStepItemIndicatorAreaClassMap()}>\n {this.mode === 'step' && this.highlight && (\n <div class={this.getHighlightClass()}>\n <br-icon\n icon-name={this.IconsName[this.highlight]}\n class={`${this.highlight === 'warning' && 'warning-color'}`}\n ></br-icon>\n </div>\n )}\n\n {this.mode === 'step' && (\n <br-button\n shape=\"circle\"\n emphasis=\"secondary\"\n isActive={this.active}\n aria-label={`Passo ${this.content || 'sem número'}`}\n class={this.getStepItemIndicatorClass()}\n >\n {this.contentType === 'no-content' && ''}\n {this.contentType === 'default' && this.content}\n {this.contentType === 'br-icon' && (\n <br-icon icon-name={this.brIconName} class={'content-type-br-icon'}></br-icon>\n )}\n {this.contentType === 'slotted' && <slot name={'content-area'}></slot>}\n </br-button>\n )}\n\n {this.mode === 'controller' && (\n <button\n data-active={this.active}\n class={'mode-controller'}\n aria-label={`Controlador do passo ${this.content || 'sem número'}`}\n ></button>\n )}\n </div>\n <div id=\"label-area\" part=\"label\" class={this.getStepItemLabelAreaClassMap()}>\n <span> {this.label} </span>\n </div>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-step.br-step-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/step/step.scss?tag=br-step&encapsulation=shadow","../../packages/webcomponents/src/components/step/step.tsx","../../packages/webcomponents/src/components/step/step-item/step-item.scss?tag=br-step-item&encapsulation=shadow","../../packages/webcomponents/src/components/step/step-item/step-item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/step/step\";\n\n:host {\n .br-step {\n display: flex;\n width: 100%;\n\n &.vertical {\n flex-direction: column;\n align-items: flex-start;\n }\n\n &.horizontal {\n flex-direction: row;\n justify-content: center;\n }\n }\n}\n\n::slotted([disabled]) {\n opacity: 1 !important;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/step?tab=designer).\n *\n * @slot default - Slot para os itens do step (br-step-item), aceitando apenas esse componente.\n *\n * @part container - Parte para o contêiner principal envolvendo todos os step-items, usada para estilizar layout geral via ::part().\n *\n */\n@Component({\n tag: 'br-step',\n styleUrl: 'step.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Step {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrStepElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * propriedade responsável por definir a orientação do componente Step\n */\n @Prop({ reflect: true }) layout: 'horizontal' | 'vertical' = 'horizontal'\n /**\n *\n * define o passo que começará destacado\n */\n @Prop({ reflect: true }) initialStep: string = '0'\n /**\n *\n * Propriedade que define a posição onde o texto de destaque,label, ficará localizado no stepItem\n */\n @Prop({ reflect: true }) labelPosition?: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n /**\n *\n * Propriedade que define o tipo de conteúdo a ser exibido dentro do componente step e stepItem\n */\n @Prop({ reflect: true }) contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n /**\n *\n * Propriedade que define o tipo de comportamento que o componente Step deverá seguir\n */\n @Prop({ reflect: true }) mode: 'controller' | 'step' = 'step'\n\n /**\n *\n * Propriedade que define o tipo de progressão de etapas que o step vai executar\n */\n @Prop({ reflect: true }) progressionType: 'linear' | 'nonlinear' = 'nonlinear'\n\n @State() activeStep: number = 0\n @State() stepItems: Element[] = []\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidLoad: EventEmitter<void>\n componentDidLoad() {\n this.setStepItemsLabelPosition()\n this.setStepItemsContentType()\n this.setStepItemsDefaultContent()\n this.setStepItemsMode(this.mode)\n if (this.mode === 'step') {\n this.configureTimeLine()\n }\n if (this.progressionType === 'linear') {\n this.configureLinearProgression()\n }\n if (this.activeStep <= this.stepItems.length - 1) {\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n } else {\n console.warn('br-step initial-step attribute has value more than number of step-items provided')\n }\n this.brDidLoad.emit()\n }\n\n /**\n * Emite um evento antes do componente ser renderizado pela primeira vez, permitindo a preparação de dados ou inicializações necessárias.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdwillLoad) para mais detalhes.\n */\n @Event() brWillLoad: EventEmitter<void>\n componentWillLoad() {\n this.activeStep = Number(this.initialStep)\n this.getStepItemsElements()\n this.brWillLoad.emit()\n }\n\n /**\n * Emite um evento para indicar se o componente deve ser atualizado ou não.\n * Este evento é chamado antes de qualquer atualização do componente para decidir se a atualização deve prosseguir.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentshouldupdate) para mais detalhes.\n */\n @Event() brShouldUpdate: EventEmitter<void>\n\n /**\n * Emite um evento quando o step ativo muda.\n * O evento carrega o índice do novo step ativo (0-based).\n */\n @Event() brStepChange: EventEmitter<{ activeStep: number }>\n\n /** Controla atualizações pendentes para evitar race conditions */\n private updateScheduled = false\n\n componentShouldUpdate(newValue: number, oldValue: number, stateName: string) {\n if (stateName === 'activeStep' && oldValue !== newValue) {\n if (!this.updateScheduled) {\n this.updateScheduled = true\n requestAnimationFrame(() => {\n this.updateScheduled = false\n this.updateStepItemsActiveState(oldValue)\n })\n }\n this.brShouldUpdate.emit()\n this.brStepChange.emit({ activeStep: this.activeStep })\n }\n }\n\n /**\n * Atualiza os atributos 'active' dos step-items de forma segura\n * Chamado via requestAnimationFrame para garantir que o DOM é atualizado após batched state changes\n */\n private updateStepItemsActiveState(previousActiveStep: number) {\n const outOfRange = previousActiveStep > this.stepItems.length - 1\n\n if (!outOfRange) {\n this.stepItems[previousActiveStep].removeAttribute('active')\n }\n\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n }\n\n /**\n * listener para ouvir o evento de click no componente step\n * Através desse listener o componente define qual será o proximo passo do step que terá o estado ativo\n */\n\n @Listen('click', { capture: true })\n handleClick(event) {\n const targetElement = event.target as Element\n if (targetElement.getAttribute('slot') !== null) {\n const slotItem = this.stepItems.findIndex((element) => element.lastElementChild === targetElement)\n this.activeStep = slotItem\n return\n }\n const item = this.stepItems.findIndex((element) => element === targetElement)\n this.activeStep = item\n }\n\n private getStepItemsElements() {\n const slotItems = Array.from(this.el.children)\n const firstChildrenContentTypeValue = slotItems[0].getAttribute('content-type')\n const childrenHaveConsistentContentType = slotItems.every(\n (item) => item.getAttribute('content-type') === firstChildrenContentTypeValue\n )\n const childrenHaveConsistentTagName = slotItems.every((item) => item.tagName.toLowerCase() === 'br-step-item')\n if (childrenHaveConsistentContentType && childrenHaveConsistentTagName) {\n this.stepItems = slotItems\n return\n }\n if (!childrenHaveConsistentTagName) {\n throw new Error('br-step component must have as child elements only br-step-items components')\n }\n if (!childrenHaveConsistentContentType) {\n throw new Error('br-step must have all child elements with same content type attribute value')\n }\n }\n\n private setStepItemsLabelPosition() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (this.labelPosition !== undefined) {\n elements.setLabelPosition(this.labelPosition)\n }\n })\n }\n\n private setStepItemsDefaultContent() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const indicatorContent = index + 1\n elements.setContent(indicatorContent.toString())\n })\n }\n\n private async setStepItemsContentType() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n await Promise.all(slotItems.map((element) => element.setContentType(this.contentType)))\n slotItems.forEach((elements, index) => {\n elements.setAttribute('aria-posinset', `${index + 1}`)\n elements.setAttribute('aria-setsize', `${slotItems.length}`)\n })\n }\n\n private setStepItemsMode(mode: 'controller' | 'step') {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n elements.setMode(mode)\n\n if (mode === 'controller') {\n elements.setContentType('no-content')\n if (this.layout !== 'horizontal') {\n this.layout = 'horizontal'\n }\n elements.removeAttribute('label')\n }\n })\n }\n\n private getStepItemPosition(stepItemsElements: HTMLBrStepItemElement[], index) {\n if (index === 0) {\n return 'first'\n }\n if (index > 0 && index < stepItemsElements.length - 1) {\n return 'middle'\n }\n return 'last'\n }\n\n private configureTimeLine() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const elementPosition = this.getStepItemPosition(slotItems, index)\n elements.setStepItemPositionStatus(elementPosition)\n elements.handleShowTimeLine(true, this.layout)\n })\n }\n\n private configureLinearProgression() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n if (index > 0) {\n elements.setAttribute('disabled', 'true')\n }\n })\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por avançar para o próximo passo e atualizar o valor do estado activeStep\n */\n @Method()\n async ProceedToNextStep() {\n if (this.activeStep + 1 < this.stepItems.length) {\n this.activeStep = this.activeStep + 1\n if (this.progressionType === 'linear') {\n this.stepItems[this.activeStep].removeAttribute('disabled')\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por retornar ao passo anterior e atualizar o valor do estado activeStep\n */\n @Method()\n async BackToPreviousStep() {\n if (this.activeStep - 1 >= 0) {\n this.activeStep = this.activeStep - 1\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que integra um componente externo ao componente Step, permitindo sinalizar validações ou destacar a etapa com estado ativo.\n */\n @Method()\n async StepValidation(validationStatus: 'success' | 'info' | 'danger' | 'warning') {\n this.stepItems[this.activeStep].setAttribute('highlight', validationStatus)\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que permite a um componente externo obter a etapa com o estado ativo do componente Step.\n */\n @Method()\n async GetActiveStep() {\n return this.activeStep\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-step': true,\n horizontal: this.layout === 'horizontal',\n vertical: this.layout === 'vertical',\n }\n }\n\n private AriaObjectContent = {\n step: 'Modo etapas ',\n controller: 'Modo controle ',\n default: 'passos com conteúdo numérico ',\n 'br-icon': 'passos com conteúdo que possuem icones ',\n slotted: 'passos com conteúdo customizados ',\n 'no-content': 'passos que apresentam conteúdo por meio de tooltip ',\n linear: 'progressão linear ',\n nonlinear: 'progressão não linear ',\n vertical: 'com layout vertical ',\n horizontal: 'com layout horizontal ',\n }\n\n private getAreaLabel(): string {\n let ariaLabel = ' Lista de Opções '\n if (this.mode !== 'controller') {\n ariaLabel +=\n this.AriaObjectContent[this.mode] +\n this.AriaObjectContent[this.contentType] +\n this.AriaObjectContent[this.progressionType] +\n this.AriaObjectContent[this.layout]\n } else {\n ariaLabel += this.AriaObjectContent[this.mode]\n }\n return ariaLabel\n }\n\n render() {\n return (\n <Host>\n {this.stepItems.length > 0 && (\n <div\n part=\"container\"\n role=\"listbox\"\n tabIndex={0}\n aria-orientation={this.layout}\n aria-label={this.getAreaLabel()}\n class={this.getCssClassMap()}\n data-label={this.labelPosition}\n >\n <div class=\"step-progress\">\n <slot></slot>\n </div>\n </div>\n )}\n </Host>\n )\n }\n}\n",":host {\n --step-empty: 16px;\n --step-empty-border: 4px;\n\n align-items: center;\n background-color: transparent;\n border: 0;\n display: flex;\n flex-grow: 1;\n justify-content: center;\n min-height: var(--step-size);\n padding: 0;\n position: relative;\n\n // Layout vertical\n &.vertical {\n justify-content: start;\n\n &[data-label=\"left\"] {\n justify-content: end;\n }\n\n &[data-label=\"right\"] {\n justify-content: start;\n }\n }\n\n // Labels laterais (horizontal)\n &[data-label=\"left\"]:not(.vertical) {\n justify-content: end;\n }\n\n &[data-label=\"right\"]:not(.vertical) {\n justify-content: start;\n }\n\n // Modo controller\n &.mode-controller {\n min-width: 20px;\n min-height: 20px;\n }\n\n // Desabilitar interações\n &.disabled-host {\n cursor: not-allowed;\n }\n}\n\n// ===== BOTÃO STEP (step-progress-btn) =====\n\n.step-progress-btn {\n align-items: center;\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: flex;\n flex-grow: 1;\n justify-content: center;\n min-height: var(--step-size);\n padding: 0;\n position: relative;\n\n // ===== INDICADOR CIRCULAR (::before) =====\n &::before {\n align-items: center;\n background-color: var(--background);\n border: var(--step-line) solid var(--interactive);\n border-radius: 50%;\n color: var(--interactive);\n content: attr(step-num);\n display: inline-flex;\n font-size: var(--font-size-scale-up-03);\n font-weight: var(--font-weight-medium);\n height: var(--step-size);\n justify-content: center;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n width: var(--step-size);\n z-index: 2;\n }\n\n // ===== CONECTOR / LINHA DO TEMPO (::after) =====\n &::after {\n background-color: var(--interactive);\n content: \"\";\n display: block;\n height: var(--step-line);\n left: 0;\n position: absolute;\n right: 0;\n z-index: 1;\n }\n}\n\n// ===== POSIÇÃO DO LABEL (justify-content do botão) =====\n:host([data-label=\"left\"]) .step-progress-btn {\n justify-content: end;\n}\n\n:host([data-label=\"right\"]) .step-progress-btn {\n justify-content: start;\n}\n\n:host(.vertical) .step-progress-btn {\n justify-content: start;\n}\n\n:host(.vertical[data-label=\"left\"]) .step-progress-btn {\n justify-content: end;\n}\n\n:host(.vertical[data-label=\"right\"]) .step-progress-btn {\n justify-content: start;\n}\n\n// ===== ÍCONE DE CONTEÚDO (step-icon) =====\n.step-icon {\n align-items: center;\n color: var(--interactive);\n display: inline-flex;\n height: var(--step-size);\n justify-content: center;\n position: absolute;\n width: var(--step-size);\n z-index: 4;\n}\n\n// ===== ÍCONE DE ALERTA (step-alert) =====\n.step-alert {\n align-items: center;\n border-radius: 50%;\n color: var(--color-dark);\n display: flex;\n height: var(--font-size-scale-up-04);\n justify-content: center;\n position: absolute;\n width: var(--font-size-scale-up-04);\n z-index: 4;\n\n &.no-content {\n width: calc(var(--font-size-scale-up-04) + var(--step-empty-border));\n height: calc(var(--font-size-scale-up-04) + var(--step-empty-border));\n }\n}\n\n// ===== POSICIONAMENTO DO INDICADOR (::before) POR LABEL =====\n\n// Label bottom: indicador no topo\n:host([data-label=\"bottom\"]) .step-progress-btn::before {\n top: 0;\n}\n\n// Label top: indicador embaixo\n:host([data-label=\"top\"]) .step-progress-btn::before {\n bottom: 0;\n}\n\n// Label left: indicador à direita\n:host([data-label=\"left\"]) .step-progress-btn::before {\n left: auto;\n right: 0;\n}\n\n// Label right: indicador à esquerda\n:host([data-label=\"right\"]) .step-progress-btn::before {\n left: 0;\n right: auto;\n}\n\n// Vertical: indicador centralizado\n:host(.vertical) .step-progress-btn::before {\n inset: 0 auto 0 50%;\n margin: auto;\n transform: translateX(-50%);\n}\n\n// Vertical + label left: indicador à direita\n:host(.vertical[data-label=\"left\"]) .step-progress-btn::before {\n left: auto;\n right: 0;\n transform: none;\n}\n\n// Vertical + label right: indicador à esquerda\n:host(.vertical[data-label=\"right\"]) .step-progress-btn::before {\n left: 0;\n right: auto;\n transform: none;\n}\n\n:host(.mode-controller) .step-progress-btn::before {\n inset: 0;\n margin: auto;\n}\n\n// ===== POSICIONAMENTO DO ÍCONE (step-icon) POR LABEL =====\n\n:host([data-label=\"bottom\"]) .step-icon {\n top: 0;\n}\n\n:host([data-label=\"top\"]) .step-icon {\n bottom: 0;\n}\n\n/* Vertical layout: centralizar o ícone dentro do step-item */\n:host([data-label=\"bottom\"].vertical) .step-icon,\n:host([data-label=\"top\"].vertical) .step-icon {\n top: 0;\n bottom: 0;\n left: 50%;\n margin: auto;\n transform: translateX(-50%);\n}\n\n// ===== POSICIONAMENTO DO ALERTA (step-alert) POR LABEL =====\n\n:host([data-label=\"bottom\"]) .step-alert {\n transform: translate(calc(var(--step-size) * 0.5), calc(var(--step-size) * -0.75));\n}\n\n:host([data-label=\"top\"]) .step-alert {\n transform: translate(calc(var(--step-size) * 0.5), calc(var(--step-size) * 0.25));\n}\n\n:host([data-label=\"left\"]) .step-alert {\n transform: translate(calc(var(--step-size) * 0.4), calc(var(--step-size) * -0.25));\n}\n\n:host([data-label=\"right\"]) .step-alert {\n transform: translate(calc(var(--step-size) * 0.65), calc(var(--step-size) * -0.25));\n}\n\n// ===== LINHAS CONECTORAS HORIZONTAIS =====\n\n// Primeiro item: linha começa no centro\n:host(:first-of-type:not(.vertical)) .step-progress-btn::after {\n left: 50%;\n}\n\n// Último item: linha termina no centro\n:host(:last-of-type:not(.vertical)) .step-progress-btn::after {\n right: 50%;\n}\n\n:host([data-label=\"bottom\"]:not(.vertical)) .step-progress-btn::after {\n top: calc(var(--step-size) * 0.5);\n}\n\n:host([data-label=\"top\"]:not(.vertical)) .step-progress-btn::after {\n bottom: calc(var(--step-size) * 0.5);\n}\n\n:host([data-label=\"left\"]:not(.vertical)) .step-progress-btn::after {\n left: 0;\n}\n\n:host([data-label=\"left\"]:not(.vertical):first-of-type) .step-progress-btn::after {\n left: 100%;\n}\n\n:host([data-label=\"left\"]:not(.vertical):last-of-type) .step-progress-btn::after {\n right: 0;\n}\n\n// Label right\n:host([data-label=\"right\"]:not(.vertical)) .step-progress-btn::after {\n right: 0;\n}\n\n:host([data-label=\"right\"]:not(.vertical):first-of-type) .step-progress-btn::after {\n left: 0;\n}\n\n:host([data-label=\"right\"]:not(.vertical):last-of-type) .step-progress-btn::after {\n right: 100%;\n}\n\n// ===== LINHAS CONECTORAS VERTICAIS =====\n:host(.vertical) .step-progress-btn::after {\n inset: 0 auto 0 50%;\n height: auto;\n width: var(--step-line);\n margin: 0;\n transform: translateX(-50%);\n}\n\n// Vertical + label top\n:host(.vertical[data-label=\"top\"]) .step-progress-btn::after {\n top: 50%;\n}\n\n// Vertical + label bottom\n:host(.vertical[data-label=\"bottom\"]) .step-progress-btn::after {\n bottom: 50%;\n}\n\n:host(.vertical:first-of-type) .step-progress-btn::after {\n top: 50%;\n}\n\n:host(.vertical:last-of-type) .step-progress-btn::after {\n bottom: 50%;\n}\n\n:host(.vertical[data-label=\"left\"]) .step-progress-btn::after {\n left: auto;\n right: calc(var(--step-size) * 0.5);\n margin: 0;\n}\n\n:host(.vertical[data-label=\"right\"]) .step-progress-btn::after {\n left: calc(var(--step-size) * 0.5);\n right: auto;\n margin: 0;\n}\n\n// ===== LABEL (step-info) =====\n.step-info {\n color: var(--interactive);\n display: inline-block;\n font-size: var(--font-size-scale-up-01);\n font-weight: var(--font-weight-medium);\n}\n\n// Rótulo abaixo (padrão)\n:host([data-label=\"bottom\"]) .step-info {\n margin-top: var(--step-size);\n padding-top: var(--spacing-scale-2x);\n}\n\n// Rótulo acima\n:host([data-label=\"top\"]) .step-info {\n margin-bottom: var(--step-size);\n padding-bottom: var(--spacing-scale-2x);\n}\n\n:host(.vertical[data-label=\"top\"]) .step-info,\n:host(.vertical[data-label=\"bottom\"]) .step-info {\n display: block;\n text-align: center;\n width: 100%;\n}\n\n// Rótulo esquerda (oculto em mobile)\n:host([data-label=\"left\"]:not(.vertical)) .step-info {\n display: none;\n\n @include media-breakpoint-up(sm) {\n background-color: var(--background);\n display: inline-block;\n margin-right: var(--step-size);\n padding: var(--spacing-scale-2x);\n position: relative;\n z-index: 3;\n }\n}\n\n// Rótulo direita (oculto em mobile)\n:host([data-label=\"right\"]:not(.vertical)) .step-info {\n display: none;\n\n @include media-breakpoint-up(sm) {\n background-color: var(--background);\n display: inline-block;\n margin-left: var(--step-size);\n padding: var(--spacing-scale-2x);\n position: relative;\n z-index: 3;\n }\n}\n\n// Labels laterais sempre visíveis no layout vertical\n:host(.vertical[data-label=\"left\"]) .step-info,\n:host(.vertical[data-label=\"right\"]) .step-info {\n background-color: var(--background);\n display: inline-block;\n padding: var(--spacing-scale-2x);\n position: relative;\n z-index: 3;\n}\n\n:host(.vertical[data-label=\"left\"]) .step-info {\n margin-right: var(--step-size);\n margin-left: 0;\n}\n\n:host(.vertical[data-label=\"right\"]) .step-info {\n margin-left: var(--step-size);\n margin-right: 0;\n}\n\n// ===== ESTADOS =====\n\n:host .step-progress-btn {\n // Estados de alerta (success, info, warning, danger)\n &[data-alert=\"success\"] {\n color: var(--success);\n\n .step-info {\n color: var(--success);\n }\n\n .step-alert {\n background-color: var(--success);\n }\n }\n\n &[data-alert=\"info\"] {\n color: var(--info);\n\n .step-info {\n color: var(--info);\n }\n\n .step-alert {\n background-color: var(--info);\n }\n }\n\n &[data-alert=\"warning\"] {\n color: var(--color-light);\n\n .step-info {\n color: var(--color);\n }\n\n .step-alert {\n background-color: var(--warning);\n }\n }\n\n &[data-alert=\"danger\"] {\n color: var(--danger);\n\n .step-info {\n color: var(--danger);\n }\n\n .step-alert {\n background-color: var(--danger);\n }\n }\n\n &.active {\n &::before {\n background-color: var(--active);\n border-color: var(--active);\n color: var(--background);\n }\n\n .step-icon {\n color: var(--background);\n }\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n &::before {\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n z-index: 4;\n }\n }\n\n &:hover:not(:disabled) {\n &::before {\n background-image: linear-gradient(\n rgb(var(--interactive-rgb), var(--hover)),\n rgb(var(--interactive-rgb), var(--hover))\n );\n }\n }\n\n &:disabled {\n opacity: 1;\n cursor: not-allowed;\n\n &::before {\n background-color: var(--background);\n border-color: rgb(var(--interactive-rgb), var(--disabled));\n color: rgb(var(--interactive-rgb), var(--disabled));\n }\n\n .step-icon {\n opacity: var(--disabled);\n }\n\n .step-info {\n color: rgb(var(--interactive-rgb), var(--disabled));\n }\n }\n}\n\n// ===== DATA-TYPE=\"VOID\" (NO-CONTENT) =====\n:host([data-type=\"void\"]) {\n .step-progress-btn {\n &.active {\n .step-alert {\n border: var(--step-empty-border) solid var(--active);\n height: calc(var(--font-size-scale-up-04) + var(--step-empty-border));\n width: calc(var(--font-size-scale-up-04) + var(--step-empty-border));\n }\n }\n\n .step-alert {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 4;\n }\n\n &::before {\n content: \"\";\n height: var(--step-empty);\n width: var(--step-empty);\n left: 50%;\n right: auto;\n margin: 0;\n transform: translate(-50%, -50%);\n top: 50%;\n }\n }\n\n .step-info {\n height: 0;\n overflow: hidden;\n position: absolute;\n width: 0;\n }\n}\n\n// ===== Z-INDEX HIERARCHY =====\n// z-index: 1 - Conectores (linhas ::after)\n// z-index: 2 - Indicadores (::before)\n// z-index: 3 - Labels com background\n// z-index: 4 - Highlight icons (step-alert)\n\n// ===== ICONES E ESTILOS AUXILIARES =====\n.content-type-br-icon {\n color: var(--interactive);\n font-size: var(--font-size-scale-up-01);\n font-weight: var(--font-weight-bold);\n}\n\n.step-progress-btn.active .content-type-br-icon {\n color: var(--background);\n}\n\n:host(.vertical[data-label=\"top\"]) .step-alert,\n:host(.vertical[data-label=\"bottom\"]) .step-alert {\n top: 50%;\n left: 50%;\n transform: translate(25%, -75%);\n}\n\n:host([data-type=\"void\"]) .step-progress-btn[data-alert].focus-visible::before,\n:host([data-type=\"void\"]) .step-progress-btn[data-alert]:focus-visible::before {\n outline: none;\n}\n\n:host([data-type=\"void\"]) .step-progress-btn[data-alert].focus-visible .step-alert,\n:host([data-type=\"void\"]) .step-progress-btn[data-alert]:focus-visible .step-alert {\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n z-index: 4;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/step?tab=designer).\n *\n * @slot content-area - Slot para conteúdo customizado dentro do botão do item do step.\n *\n * @part label - Parte para o contêiner do texto da etapa, usada para estilizar tipografia e cor via ::part().\n *\n */\n@Component({\n tag: 'br-step-item',\n styleUrl: 'step-item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class StepItem {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrStepItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Propriedade que define o conteúdo do texto auxiliar de realce do item de Step.\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Propriedade que define o tipo de ícone de destaque exibido pelo item Step, com quatro opções disponíveis: \"success\", \"info\", \"danger\" e \"warning\".\n */\n @Prop({ reflect: true }) highlight?: 'success' | 'info' | 'danger' | 'warning'\n\n /**\n * Propriedade que define se o item Step está com estado ativo.\n */\n @Prop({ reflect: true }) active: boolean = false\n\n /**\n * Propriedade que define se o item Step está com estado desativado.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Propriedade Define o nome do ícone do componente BRIcon que será exibido como conteúdo do step item, propriedade funciona apenas quando o state contentType assume o valor br-icon.\n */\n @Prop({ reflect: true }) brIconName?: string = ''\n\n /**\n * Propriedade Define o nome do ícone o texto de acessibilidade apresentando quando o tipo de conteúdo for o br-icon\n */\n @Prop({ reflect: true }) brIconAria: string = ''\n\n @State() showTimeLine: boolean = false\n @State() stepItemPositionStatus: 'first' | 'middle' | 'last' = 'first'\n @State() stepLayout: 'horizontal' | 'vertical' = 'horizontal'\n @State() labelPosition: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n @State() contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n @State() mode: 'controller' | 'step' = 'step'\n @State() content: string = ''\n @State() ariaLabelContent: string = ''\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brWillRender: EventEmitter<void>\n componentWillRender() {\n let accessibilityContent = ''\n let activeItem = ''\n if (this.contentType === 'slotted') {\n const slotedContent = this.el.lastElementChild\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${slotedContent.textContent} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${slotedContent.textContent} ${this.highLightAriaLabel[this.highlight]}`\n this.ariaLabelContent = accessibilityContent\n return\n }\n if (this.contentType === 'br-icon') {\n accessibilityContent =\n `passo ${this.content} ` + this.brIconAria + this.label + this.highLightAriaLabel[this.highlight]\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n return\n } else {\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${this.highLightAriaLabel[this.highlight]}`\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n }\n }\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidRender: EventEmitter<void>\n componentDidRender() {\n this.brDidRender.emit()\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que indica a posição do step item, ele serve para setar o state stepItemPositionStatus do componente\n */\n @Method()\n async setStepItemPositionStatus(value: 'first' | 'middle' | 'last') {\n this.stepItemPositionStatus = value\n }\n\n /**\n * Método que define a orientação do stepItem e controla a exibição da linha do tempo após o componente.\n */\n @Method()\n async handleShowTimeLine(value: boolean, layout) {\n this.showTimeLine = value\n this.stepLayout = layout\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor ao estado que define onde o label, o texto de destaque, irá ficar localizado\n */\n @Method()\n async setLabelPosition(value: 'top' | 'right' | 'bottom' | 'left') {\n this.labelPosition = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o tipo de conteúdo apresentado dentro do componente stepItem\n */\n @Method()\n async setContentType(value: 'default' | 'br-icon' | 'no-content' | 'slotted') {\n this.contentType = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o modo como o componente irá se comportar e exibir seu estilo.\n */\n @Method()\n async setMode(value: 'controller' | 'step') {\n this.mode = value\n }\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá ser exibido dentro do componente stepItem\n */\n @Method()\n async setContent(value: string) {\n this.content = value\n }\n\n private getAlertClass(): CssClassMap {\n return {\n 'step-alert': true,\n 'no-content': this.contentType === 'no-content',\n }\n }\n\n private highLightAriaLabel = {\n success: 'passo completo',\n info: 'passo com item informativo',\n warning: 'passo com alerta',\n danger: 'passo com erro',\n undefined: '',\n }\n\n private IconsName = {\n success: 'fa-check',\n info: 'fa-info-circle',\n warning: 'fa-exclamation-triangle',\n danger: 'fa-times',\n }\n\n render() {\n return (\n <Host\n data-label={this.labelPosition}\n data-type={this.contentType === 'no-content' ? 'void' : undefined}\n class={{\n [this.stepLayout]: true,\n 'mode-controller': this.mode === 'controller',\n 'disabled-host': this.disabled,\n timeline: this.showTimeLine,\n }}\n >\n <button\n class={{\n 'step-progress-btn': true,\n active: this.active,\n }}\n type=\"button\"\n role=\"option\"\n aria-selected={this.active ? 'true' : 'false'}\n aria-label={this.ariaLabelContent}\n disabled={this.disabled}\n step-num={this.contentType === 'default' ? this.content : undefined}\n data-alert={this.highlight || undefined}\n >\n {this.label && (\n <span class=\"step-info\" part=\"label\">\n {this.label}\n </span>\n )}\n\n {/* Ícone de conteúdo (quando contentType é br-icon) */}\n {this.contentType === 'br-icon' && (\n <span class=\"step-icon\">\n <br-icon icon-name={this.brIconName} aria-hidden=\"true\"></br-icon>\n </span>\n )}\n\n {/* Slot para conteúdo customizado */}\n {this.contentType === 'slotted' && (\n <span class=\"step-icon\">\n <slot name=\"content-area\"></slot>\n </span>\n )}\n\n {/* Ícone de alerta/highlight */}\n {this.mode === 'step' && this.highlight && (\n <div class={this.getAlertClass()}>\n <br-icon\n icon-name={this.IconsName[this.highlight]}\n class={this.highlight === 'warning' ? 'warning-color' : ''}\n ></br-icon>\n </div>\n )}\n </button>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-switch.entry.esm.js","sources":["../../packages/webcomponents/src/components/switch/switch.scss?tag=br-switch&encapsulation=shadow","../../packages/webcomponents/src/components/switch/switch.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/switch/switch\";\n\n:host {\n display: inline-block;\n}\n\n:host([disabled]) .br-switch,\n:host([disabled]) .br-switch label,\n:host([disabled]) .br-switch input {\n cursor: not-allowed;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/switch?tab=designer).\n *\n * @slot default - Slot para o rótulo do switch, com prioridade sobre a propriedade label.\n */\n@Component({\n tag: 'br-switch',\n styleUrl: 'switch.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Switch {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrSwitchElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o switch, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: boolean = false\n\n /**\n * Identificador único; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-switch')\n\n /**\n * Texto descritivo.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop() readonly label: string\n\n /**\n * Posição do rótulo em relação ao switch.\n */\n @Prop({ reflect: true }) readonly labelPosition: 'right' | 'left' | 'top' = 'left'\n\n /**\n * Texto exibido quando o switch está ativado.\n */\n @Prop({ reflect: true }) readonly labelOn: string\n\n /**\n * Texto exibido quando o switch está desativado.\n */\n @Prop({ reflect: true }) readonly labelOff: string\n\n /**\n * Adiciona um ícone ao switch para indicar a mudança de estado.\n */\n @Prop({ reflect: true }) readonly hasIcon: boolean = false\n\n /**\n * Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o switch está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n /** O ajuste da densidade consiste em aumentar ou reduzir a área de interação do switch. Quanto menor for a densidade, maior a área de interação. */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() _slotDefault: boolean = false\n\n componentWillLoad() {\n this._hasSlotContentDefault()\n }\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n private _hasSlotContentDefault(): void {\n this._slotDefault = this.el.innerHTML !== ''\n }\n\n /**\n * Determina o texto a ser usado para acessibilidade quando não há label visível\n */\n private getAccessibilityLabel(): string {\n const hostAriaLabel = this.el.getAttribute('aria-label')\n\n if (hostAriaLabel && hostAriaLabel.trim() !== '') {\n return hostAriaLabel\n }\n\n if (this.label && this.label.trim() !== '') {\n return this.label\n }\n\n if (\n typeof this.labelOn === 'string' &&\n this.labelOn.trim() !== '' &&\n typeof this.labelOff === 'string' &&\n this.labelOff.trim() !== ''\n ) {\n return `Alternar entre ${this.labelOff} e ${this.labelOn}`\n }\n\n return 'Alternar seleção'\n }\n\n private readonly handleCheckedChange = (event: Event) => {\n this.checked = (event.target as HTMLInputElement).checked\n this.checkedChange.emit(this.checked)\n }\n\n private readonly handleClick = (event: Event) => {\n event.stopPropagation()\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n /**\n * Verifica se o componente tem texto visível (via slot ou label)\n */\n private hasVisibleText(): boolean {\n return this._slotDefault || (this.label !== undefined && this.label !== null && this.label.trim() !== '')\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-switch': true,\n icon: this.hasIcon,\n top: this.labelPosition === 'top',\n right: this.labelPosition === 'right',\n large: this.density === 'large',\n small: this.density === 'small',\n }\n }\n\n render() {\n const hasVisibleText = this.hasVisibleText()\n\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n id={this.customId}\n type=\"checkbox\"\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n role=\"switch\"\n aria-checked={this.checked ? 'true' : 'false'}\n onChange={this.handleCheckedChange}\n onClick={this.handleClick}\n {...(!hasVisibleText ? { 'aria-label': this.getAccessibilityLabel() } : {})}\n />\n <label htmlFor={this.customId}>{this._slotDefault ? <slot></slot> : this.label || ''}</label>\n {this.labelOn && this.labelOff && (\n <div class=\"switch-data\" data-enabled={this.labelOn} data-disabled={this.labelOff} aria-hidden=\"true\"></div>\n )}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-switch.entry.esm.js","sources":["../../packages/webcomponents/src/components/switch/switch.scss?tag=br-switch&encapsulation=shadow","../../packages/webcomponents/src/components/switch/switch.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/switch/switch\";\n\n:host {\n display: inline-block;\n}\n\n:host([disabled]) .br-switch,\n:host([disabled]) .br-switch label,\n:host([disabled]) .br-switch input {\n cursor: not-allowed;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/switch?tab=designer).\n *\n * @slot default - Slot para o rótulo do switch, com prioridade sobre a propriedade label.\n */\n@Component({\n tag: 'br-switch',\n styleUrl: 'switch.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Switch {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrSwitchElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o switch, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: boolean = false\n\n /**\n * Identificador único; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-switch')\n\n /**\n * Texto descritivo.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop() readonly label: string\n\n /**\n * Posição do rótulo em relação ao switch.\n */\n @Prop({ reflect: true }) readonly labelPosition: 'right' | 'left' | 'top' = 'left'\n\n /**\n * Texto exibido quando o switch está ativado.\n */\n @Prop({ reflect: true }) readonly labelOn: string\n\n /**\n * Texto exibido quando o switch está desativado.\n */\n @Prop({ reflect: true }) readonly labelOff: string\n\n /**\n * Adiciona um ícone ao switch para indicar a mudança de estado.\n */\n @Prop({ reflect: true }) readonly hasIcon: boolean = false\n\n /**\n * Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o switch está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n /** O ajuste da densidade consiste em aumentar ou reduzir a área de interação do switch. Quanto menor for a densidade, maior a área de interação. */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() _slotDefault: boolean = false\n\n componentWillLoad() {\n this._hasSlotContentDefault()\n }\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n private _hasSlotContentDefault(): void {\n this._slotDefault = this.el.innerHTML !== ''\n }\n\n /**\n * Determina o texto a ser usado para acessibilidade quando não há label visível\n */\n private getAccessibilityLabel(): string {\n const hostAriaLabel = this.el.getAttribute('aria-label')\n\n if (hostAriaLabel && hostAriaLabel.trim() !== '') {\n return hostAriaLabel\n }\n\n if (this.label && this.label.trim() !== '') {\n return this.label\n }\n\n if (\n typeof this.labelOn === 'string' &&\n this.labelOn.trim() !== '' &&\n typeof this.labelOff === 'string' &&\n this.labelOff.trim() !== ''\n ) {\n return `Alternar entre ${this.labelOff} e ${this.labelOn}`\n }\n\n return 'Alternar seleção'\n }\n\n private readonly handleCheckedChange = (event: Event) => {\n this.checked = (event.target as HTMLInputElement).checked\n this.checkedChange.emit(this.checked)\n }\n\n private readonly handleClick = (event: Event) => {\n event.stopPropagation()\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n /**\n * Verifica se o componente tem texto visível (via slot ou label)\n */\n private hasVisibleText(): boolean {\n return this._slotDefault || (this.label !== undefined && this.label !== null && this.label.trim() !== '')\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-switch': true,\n icon: this.hasIcon,\n top: this.labelPosition === 'top',\n right: this.labelPosition === 'right',\n large: this.density === 'large',\n small: this.density === 'small',\n }\n }\n\n render() {\n const hasVisibleText = this.hasVisibleText()\n\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n id={this.customId}\n type=\"checkbox\"\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n role=\"switch\"\n aria-checked={this.checked ? 'true' : 'false'}\n onChange={this.handleCheckedChange}\n onClick={this.handleClick}\n {...(!hasVisibleText ? { 'aria-label': this.getAccessibilityLabel() } : {})}\n />\n <label htmlFor={this.customId}>{this._slotDefault ? <slot></slot> : this.label || ''}</label>\n {this.labelOn && this.labelOff && (\n <div class=\"switch-data\" data-enabled={this.labelOn} data-disabled={this.labelOff} aria-hidden=\"true\"></div>\n )}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-tab-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/tab/tab-item/tab-item.scss?tag=br-tab-item&encapsulation=shadow","../../packages/webcomponents/src/components/tab/tab-item/tab-item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/tab/tab\";\n\n:host {\n width: 100%;\n box-sizing: border-box;\n}\n\n:host(:not([is-active])) {\n display: none;\n}\n\n:host([is-active]) {\n display: block;\n}\n\n:host(.dark-mode) {\n @include dark-mode;\n\n color: var(--color);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/tab?tab=designer).\n *\n * @slot default - Slot para o conteúdo do item da aba.\n */\n@Component({\n tag: 'br-tab-item',\n styleUrl: 'tab-item.scss',\n shadow: true,\n})\nexport class TabItem {\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: HTMLBrTabItemElement\n\n /**\n * Identificador único do item da tab.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, mutable: true }) tabItemId: string = Helpers.generateUniqueId()\n\n /**\n * Define o título do item de tab que aparece no botão de navegação\n */\n @Prop({ reflect: true }) readonly tabItemTitle: string\n\n /**\n * Define ícone do item de tab\n */\n @Prop({ reflect: true }) readonly icon: string\n\n /**\n * Define se exibe apenas o ícone, sem texto\n */\n @Prop({ reflect: true }) readonly onlyIcon: boolean = false\n\n /**\n * Define se o item de tab está ativo/visível\n */\n\n @Prop({ reflect: true, mutable: true }) isActive: boolean = false\n\n /**\n * Define contador do item de tab (exibido abaixo do botão)\n */\n @Prop({ reflect: true }) readonly counter: string\n\n /**\n * Define se o Tab usará um esquema de cores escuro\n */\n @Prop({ reflect: true }) readonly colorMode: 'dark'\n\n /**\n * Evento disparado quando as propriedades do tab-item mudam.\n * O componente pai (br-tab) escuta este evento para atualizar a navegação.\n */\n @Event() brTabItemPropsChange: EventEmitter<void>\n\n /**\n * Observa mudanças no título e notifica o pai\n */\n @Watch('tabItemTitle')\n tabItemTitleChanged() {\n this.brTabItemPropsChange.emit()\n }\n\n /**\n * Observa mudanças no ícone e notifica o pai\n */\n @Watch('icon')\n iconChanged() {\n this.brTabItemPropsChange.emit()\n }\n\n /**\n * Observa mudanças no contador e notifica o pai\n */\n @Watch('counter')\n counterChanged() {\n this.brTabItemPropsChange.emit()\n }\n\n /**\n * Observa mudanças em onlyIcon e notifica o pai\n */\n @Watch('onlyIcon')\n onlyIconChanged() {\n this.brTabItemPropsChange.emit()\n }\n\n componentWillLoad() {\n // Garante ID único\n if (\n this.tabItemId === undefined ||\n this.tabItemId === null ||\n (typeof this.tabItemId === 'string' && this.tabItemId === '')\n ) {\n this.tabItemId = Helpers.generateUniqueId()\n }\n\n // Suporte para o atributo 'active' (além de 'is-active')\n if (this.el.hasAttribute('active')) {\n this.isActive = true\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'tab-panel': true,\n active: this.isActive,\n 'dark-mode': this.colorMode === 'dark',\n }\n }\n\n render() {\n return (\n <Host\n class={this.getCssClassMap()}\n id={`tab-panel-${this.tabItemId}`}\n role=\"tabpanel\"\n aria-labelledby={`tab-button-${this.tabItemId}`}\n aria-hidden={this.isActive ? 'false' : 'true'}\n >\n <slot></slot>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,UAAU,GAAG,+whBAA+whB;;MCiBrxhB,OAAO,GAAA,MAAA;AALpB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAYE;;;AAGG;AACqC,QAAA,IAAA,CAAA,SAAS,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAYtF;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;AAEG;AAEqC,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAuFlE;AArEC;;AAEG;IAEH,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;AAGlC;;AAEG;IAEH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;AAGlC;;AAEG;IAEH,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;AAGlC;;AAEG;IAEH,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;IAGlC,iBAAiB,GAAA;;AAEf,QAAA,IACE,IAAI,CAAC,SAAS,KAAK,SAAS;YAC5B,IAAI,CAAC,SAAS,KAAK,IAAI;AACvB,aAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,EAC7D;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE;;;QAI7C,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;;IAIhB,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,WAAW,EAAE,IAAI,CAAC,SAAS,KAAK,MAAM;SACvC;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EACH,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,EAAE,EAAE,CAAa,UAAA,EAAA,IAAI,CAAC,SAAS,CAAE,CAAA,EACjC,IAAI,EAAC,UAAU,EACE,iBAAA,EAAA,CAAA,WAAA,EAAc,IAAI,CAAC,SAAS,CAAA,CAAE,EAClC,aAAA,EAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,MAAM,EAAA,EAE7C,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"br-tab-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/tab/tab-item/tab-item.scss?tag=br-tab-item&encapsulation=shadow","../../packages/webcomponents/src/components/tab/tab-item/tab-item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/tab/tab\";\n\n:host {\n width: 100%;\n box-sizing: border-box;\n}\n\n:host(:not([is-active])) {\n display: none;\n}\n\n:host([is-active]) {\n display: block;\n}\n\n:host(.dark-mode) {\n @include dark-mode;\n\n color: var(--color);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/tab?tab=designer).\n *\n * @slot default - Slot para o conteúdo do item da aba.\n */\n@Component({\n tag: 'br-tab-item',\n styleUrl: 'tab-item.scss',\n shadow: true,\n})\nexport class TabItem {\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: HTMLBrTabItemElement\n\n /**\n * Identificador único do item da tab.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, mutable: true }) tabItemId: string = Helpers.generateUniqueId()\n\n /**\n * Define o título do item de tab que aparece no botão de navegação\n */\n @Prop({ reflect: true }) readonly tabItemTitle: string\n\n /**\n * Define ícone do item de tab\n */\n @Prop({ reflect: true }) readonly icon: string\n\n /**\n * Define se exibe apenas o ícone, sem texto\n */\n @Prop({ reflect: true }) readonly onlyIcon: boolean = false\n\n /**\n * Define se o item de tab está ativo/visível\n */\n\n @Prop({ reflect: true, mutable: true }) isActive: boolean = false\n\n /**\n * Define contador do item de tab (exibido abaixo do botão)\n */\n @Prop({ reflect: true }) readonly counter: string\n\n /**\n * Define se o Tab usará um esquema de cores escuro\n */\n @Prop({ reflect: true }) readonly colorMode: 'dark'\n\n /**\n * Evento disparado quando as propriedades do tab-item mudam.\n * O componente pai (br-tab) escuta este evento para atualizar a navegação.\n */\n @Event() brTabItemPropsChange: EventEmitter<void>\n\n /**\n * Observa mudanças no título e notifica o pai\n */\n @Watch('tabItemTitle')\n tabItemTitleChanged() {\n this.brTabItemPropsChange.emit()\n }\n\n /**\n * Observa mudanças no ícone e notifica o pai\n */\n @Watch('icon')\n iconChanged() {\n this.brTabItemPropsChange.emit()\n }\n\n /**\n * Observa mudanças no contador e notifica o pai\n */\n @Watch('counter')\n counterChanged() {\n this.brTabItemPropsChange.emit()\n }\n\n /**\n * Observa mudanças em onlyIcon e notifica o pai\n */\n @Watch('onlyIcon')\n onlyIconChanged() {\n this.brTabItemPropsChange.emit()\n }\n\n componentWillLoad() {\n // Garante ID único\n if (\n this.tabItemId === undefined ||\n this.tabItemId === null ||\n (typeof this.tabItemId === 'string' && this.tabItemId === '')\n ) {\n this.tabItemId = Helpers.generateUniqueId()\n }\n\n // Suporte para o atributo 'active' (além de 'is-active')\n if (this.el.hasAttribute('active')) {\n this.isActive = true\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'tab-panel': true,\n active: this.isActive,\n 'dark-mode': this.colorMode === 'dark',\n }\n }\n\n render() {\n return (\n <Host\n class={this.getCssClassMap()}\n id={`tab-panel-${this.tabItemId}`}\n role=\"tabpanel\"\n aria-labelledby={`tab-button-${this.tabItemId}`}\n aria-hidden={this.isActive ? 'false' : 'true'}\n >\n <slot></slot>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,UAAU,GAAG,uwhBAAuwhB;;MCiB7whB,OAAO,GAAA,MAAA;AALpB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAYE;;;AAGG;AACqC,QAAA,IAAA,CAAA,SAAS,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAYtF;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;AAEG;AAEqC,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAuFlE;AArEC;;AAEG;IAEH,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;AAGlC;;AAEG;IAEH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;AAGlC;;AAEG;IAEH,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;AAGlC;;AAEG;IAEH,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;;IAGlC,iBAAiB,GAAA;;AAEf,QAAA,IACE,IAAI,CAAC,SAAS,KAAK,SAAS;YAC5B,IAAI,CAAC,SAAS,KAAK,IAAI;AACvB,aAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,EAC7D;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE;;;QAI7C,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;;IAIhB,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,WAAW,EAAE,IAAI,CAAC,SAAS,KAAK,MAAM;SACvC;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EACH,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,EAAE,EAAE,CAAa,UAAA,EAAA,IAAI,CAAC,SAAS,CAAE,CAAA,EACjC,IAAI,EAAC,UAAU,EACE,iBAAA,EAAA,CAAA,WAAA,EAAc,IAAI,CAAC,SAAS,CAAA,CAAE,EAClC,aAAA,EAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,MAAM,EAAA,EAE7C,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;;;;;;;"}