@govbr-ds/webcomponents 2.5.0 → 2.6.0

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 (686) hide show
  1. package/cem/custom-elements.json +4228 -996
  2. package/cem/webcomponents.html-custom-data.json +354 -48
  3. package/dist/cjs/br-avatar.cjs.entry.js +2 -2
  4. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +1 -1
  5. package/dist/cjs/br-breadcrumb.cjs.entry.js +11 -11
  6. package/dist/cjs/br-button_2.cjs.entry.js +5 -5
  7. package/dist/cjs/br-card.cjs.entry.js +2 -2
  8. package/dist/cjs/br-carousel-page.cjs.entry.js +2 -2
  9. package/dist/cjs/br-carousel.cjs.entry.js +5 -5
  10. package/dist/cjs/br-checkbox-group.cjs.entry.js +2 -2
  11. package/dist/cjs/br-checkbox.cjs.entry.js +2 -2
  12. package/dist/cjs/br-checkgroup.cjs.entry.js +1 -1
  13. package/dist/cjs/br-collapse_2.cjs.entry.js +8 -8
  14. package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +2 -2
  15. package/dist/cjs/br-cookiebar-group.cjs.entry.js +4 -4
  16. package/dist/cjs/br-cookiebar-header.cjs.entry.js +2 -2
  17. package/dist/cjs/br-cookiebar-link.cjs.entry.js +3 -3
  18. package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +3 -3
  19. package/dist/cjs/br-cookiebar-note.cjs.entry.js +2 -2
  20. package/dist/cjs/br-cookiebar.cjs.entry.js +5 -5
  21. package/dist/cjs/br-crumb.cjs.entry.js +1 -1
  22. package/dist/cjs/br-date-picker_3.cjs.entry.js +14 -14
  23. package/dist/cjs/br-datetime-picker.cjs.entry.js +6 -23
  24. package/dist/cjs/br-divider.cjs.entry.js +2 -2
  25. package/dist/cjs/br-dropdown.cjs.entry.js +677 -0
  26. package/dist/cjs/br-footer-category.cjs.entry.js +2 -2
  27. package/dist/cjs/br-footer-item.cjs.entry.js +2 -2
  28. package/dist/cjs/br-footer-legal.cjs.entry.js +2 -2
  29. package/dist/cjs/br-footer-logo.cjs.entry.js +2 -2
  30. package/dist/cjs/br-footer-social.cjs.entry.js +3 -3
  31. package/dist/cjs/br-footer.cjs.entry.js +2 -2
  32. package/dist/cjs/br-header-function.cjs.entry.js +2 -2
  33. package/dist/cjs/br-header-link.cjs.entry.js +2 -2
  34. package/dist/cjs/br-header-list.cjs.entry.js +4 -4
  35. package/dist/cjs/br-header-logo.cjs.entry.js +2 -2
  36. package/dist/cjs/br-header.cjs.entry.js +6 -6
  37. package/dist/cjs/br-icon.cjs.entry.js +172 -158
  38. package/dist/cjs/br-input_2.cjs.entry.js +1427 -0
  39. package/dist/cjs/br-item.cjs.entry.js +2 -2
  40. package/dist/cjs/br-link.cjs.entry.js +2 -2
  41. package/dist/cjs/br-magic-button.cjs.entry.js +11 -12
  42. package/dist/cjs/br-menu-group.cjs.entry.js +2 -2
  43. package/dist/cjs/br-menu-header.cjs.entry.js +3 -3
  44. package/dist/cjs/br-menu-info.cjs.entry.js +2 -2
  45. package/dist/cjs/br-menu-item.cjs.entry.js +3 -3
  46. package/dist/cjs/br-menu-link.cjs.entry.js +3 -3
  47. package/dist/cjs/br-menu-list.cjs.entry.js +2 -2
  48. package/dist/cjs/br-menu-logo.cjs.entry.js +2 -2
  49. package/dist/cjs/br-menu-social.cjs.entry.js +2 -2
  50. package/dist/cjs/br-menu.cjs.entry.js +5 -5
  51. package/dist/cjs/br-modal.cjs.entry.js +2 -2
  52. package/dist/cjs/br-notification-body.cjs.entry.js +2 -2
  53. package/dist/cjs/br-notification-header.cjs.entry.js +2 -2
  54. package/dist/cjs/br-notification-item.cjs.entry.js +2 -2
  55. package/dist/cjs/br-notification.cjs.entry.js +2 -2
  56. package/dist/cjs/{br-dropdown_2.cjs.entry.js → br-pagination_2.cjs.entry.js} +812 -557
  57. package/dist/cjs/br-radio-group.cjs.entry.js +2 -2
  58. package/dist/cjs/br-radio.cjs.entry.js +2 -2
  59. package/dist/cjs/br-scrim.cjs.entry.js +2 -2
  60. package/dist/cjs/br-select-input_3.cjs.entry.js +16 -93
  61. package/dist/cjs/br-sign-in.cjs.entry.js +3 -3
  62. package/dist/cjs/br-skip-link-item.cjs.entry.js +1 -1
  63. package/dist/cjs/br-skip-link.cjs.entry.js +2 -2
  64. package/dist/cjs/br-skiplink-item.cjs.entry.js +2 -2
  65. package/dist/cjs/br-slider.cjs.entry.js +3 -3
  66. package/dist/cjs/br-step_2.cjs.entry.js +3 -3
  67. package/dist/cjs/br-switch.cjs.entry.js +2 -2
  68. package/dist/cjs/br-tab-item.cjs.entry.js +3 -3
  69. package/dist/cjs/br-tab.cjs.entry.js +7 -7
  70. package/dist/cjs/br-table-action_6.cjs.entry.js +1500 -0
  71. package/dist/cjs/br-table-body.cjs.entry.js +4 -16
  72. package/dist/cjs/br-table-header.cjs.entry.js +4 -16
  73. package/dist/cjs/br-table.cjs.entry.js +2616 -433
  74. package/dist/cjs/br-tag.cjs.entry.js +4 -4
  75. package/dist/cjs/br-textarea.cjs.entry.js +3 -3
  76. package/dist/cjs/br-tooltip.cjs.entry.js +5 -29
  77. package/dist/cjs/br-upload.cjs.entry.js +4 -4
  78. package/dist/cjs/br-wizard-panel.cjs.entry.js +3 -3
  79. package/dist/cjs/br-wizard.cjs.entry.js +3 -3
  80. package/dist/cjs/helpers-DkkDubv1.js +28 -0
  81. package/dist/cjs/{icon.utils-DF6kMskA.js → icon.utils-CMs0ukvR.js} +1 -1
  82. package/dist/cjs/{index-Bc30P_6z.js → index-BP8UIQro.js} +34 -34
  83. package/dist/cjs/loader.cjs.js +2 -2
  84. package/dist/cjs/table.utils-De-9_NgJ.js +749 -0
  85. package/dist/cjs/webcomponents.cjs.js +2 -2
  86. package/dist/collection/collection-manifest.json +3 -0
  87. package/dist/collection/components/avatar/avatar.css +1 -1
  88. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  89. package/dist/collection/components/breadcrumb/breadcrumb.js +9 -9
  90. package/dist/collection/components/button/button.css +1 -1
  91. package/dist/collection/components/button/button.js +2 -2
  92. package/dist/collection/components/card/card.css +1 -1
  93. package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
  94. package/dist/collection/components/carousel/carousel.css +1 -1
  95. package/dist/collection/components/carousel/carousel.js +3 -3
  96. package/dist/collection/components/checkbox/checkbox.css +1 -1
  97. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  98. package/dist/collection/components/collapse/collapse.css +1 -1
  99. package/dist/collection/components/collapse/collapse.js +9 -9
  100. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
  101. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
  102. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +2 -2
  103. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
  104. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
  105. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +1 -1
  106. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
  107. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
  108. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +1 -1
  109. package/dist/collection/components/cookiebar/cookiebar.css +1 -1
  110. package/dist/collection/components/cookiebar/cookiebar.js +3 -3
  111. package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
  112. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +4 -4
  113. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
  114. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +3 -3
  115. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  116. package/dist/collection/components/datetime-picker/datetime-picker.utils.js +6 -6
  117. package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
  118. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +3 -3
  119. package/dist/collection/components/divider/divider.css +1 -1
  120. package/dist/collection/components/dropdown/dropdown.css +1 -1
  121. package/dist/collection/components/dropdown/dropdown.js +6 -8
  122. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  123. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  124. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  125. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  126. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  127. package/dist/collection/components/footer/footer-social/footer-social.js +2 -2
  128. package/dist/collection/components/footer/footer.css +1 -1
  129. package/dist/collection/components/header/header-function/header-function.css +1 -1
  130. package/dist/collection/components/header/header-link/header-link.css +1 -1
  131. package/dist/collection/components/header/header-list/header-list.css +1 -1
  132. package/dist/collection/components/header/header-list/header-list.js +2 -2
  133. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  134. package/dist/collection/components/header/header.css +1 -1
  135. package/dist/collection/components/header/header.js +4 -4
  136. package/dist/collection/components/icon/default-icons-cache.js +159 -146
  137. package/dist/collection/components/icon/icon.css +1 -1
  138. package/dist/collection/components/icon/icon.js +17 -13
  139. package/dist/collection/components/icon/icon.utils.js +1 -1
  140. package/dist/collection/components/input/input.css +1 -1
  141. package/dist/collection/components/input/input.js +120 -2
  142. package/dist/collection/components/item/item.css +1 -1
  143. package/dist/collection/components/link/link.css +1 -1
  144. package/dist/collection/components/list/list.css +1 -1
  145. package/dist/collection/components/loading/loading.css +1 -1
  146. package/dist/collection/components/magic-button/magic-button.css +1 -1
  147. package/dist/collection/components/magic-button/magic-button.js +11 -12
  148. package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
  149. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  150. package/dist/collection/components/menu/menu-header/menu-header.js +1 -1
  151. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  152. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  153. package/dist/collection/components/menu/menu-item/menu-item.js +1 -1
  154. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  155. package/dist/collection/components/menu/menu-link/menu-link.js +1 -1
  156. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  157. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  158. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  159. package/dist/collection/components/menu/menu-social/menu-social.js +1 -1
  160. package/dist/collection/components/menu/menu.css +1 -1
  161. package/dist/collection/components/menu/menu.js +3 -3
  162. package/dist/collection/components/message/message.css +1 -1
  163. package/dist/collection/components/modal/modal.css +1 -1
  164. package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
  165. package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
  166. package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
  167. package/dist/collection/components/notification/notification.css +1 -1
  168. package/dist/collection/components/pagination/pagination.css +1 -1
  169. package/dist/collection/components/pagination/pagination.js +4 -4
  170. package/dist/collection/components/radio/radio.css +1 -1
  171. package/dist/collection/components/radio-group/radio-group.css +1 -1
  172. package/dist/collection/components/scrim/scrim.css +1 -1
  173. package/dist/collection/components/select/select-input/select-input.css +1 -1
  174. package/dist/collection/components/select/select-input/select-input.js +6 -84
  175. package/dist/collection/components/select/select-list/select-list.css +1 -1
  176. package/dist/collection/components/select/select-option/select-option.css +1 -1
  177. package/dist/collection/components/select/select-option/select-option.js +8 -7
  178. package/dist/collection/components/select/select.css +1 -1
  179. package/dist/collection/components/select/select.js +22 -6
  180. package/dist/collection/components/sign-in/sign-in.css +1 -1
  181. package/dist/collection/components/sign-in/sign-in.js +1 -1
  182. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  183. package/dist/collection/components/skip-link/skip-link.css +1 -1
  184. package/dist/collection/components/slider/slider.css +1 -1
  185. package/dist/collection/components/slider/slider.js +4 -4
  186. package/dist/collection/components/step/step-item/step-item.css +1 -1
  187. package/dist/collection/components/step/step.css +1 -1
  188. package/dist/collection/components/switch/switch.css +1 -1
  189. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  190. package/dist/collection/components/tab/tab-item/tab-item.js +2 -2
  191. package/dist/collection/components/tab/tab.css +1 -1
  192. package/dist/collection/components/tab/tab.js +4 -4
  193. package/dist/collection/components/table/table-action/table-action.css +1 -0
  194. package/dist/collection/components/table/table-action/table-action.js +349 -0
  195. package/dist/collection/components/table/table-bar/table-bar.css +1 -0
  196. package/dist/collection/components/table/table-bar/table-bar.js +652 -0
  197. package/dist/collection/components/table/table-body/table-body.css +1 -1
  198. package/dist/collection/components/table/table-body/table-body.js +12 -17
  199. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  200. package/dist/collection/components/table/table-cell/table-cell.js +556 -83
  201. package/dist/collection/components/table/table-footer/table-footer.css +1 -0
  202. package/dist/collection/components/table/table-footer/table-footer.js +233 -0
  203. package/dist/collection/components/table/table-header/table-header.css +1 -1
  204. package/dist/collection/components/table/table-header/table-header.js +11 -17
  205. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  206. package/dist/collection/components/table/table-header-cell/table-header-cell.js +287 -86
  207. package/dist/collection/components/table/table-row/table-row.css +1 -1
  208. package/dist/collection/components/table/table-row/table-row.js +312 -57
  209. package/dist/collection/components/table/table.actions-tooltip.js +33 -0
  210. package/dist/collection/components/table/{table-constants.js → table.constants.js} +54 -77
  211. package/dist/collection/components/table/table.css +1 -1
  212. package/dist/collection/components/table/table.data.js +461 -0
  213. package/dist/collection/components/table/table.expansion.elements.js +70 -0
  214. package/dist/collection/components/table/table.expansion.js +179 -0
  215. package/dist/collection/components/table/table.grouping.js +97 -0
  216. package/dist/collection/components/table/table.header-height.js +47 -0
  217. package/dist/collection/components/table/table.js +2499 -618
  218. package/dist/collection/components/table/table.keyboard.js +340 -0
  219. package/dist/collection/components/table/table.scroll-shadows.js +36 -0
  220. package/dist/collection/components/table/table.selection.elements.js +63 -0
  221. package/dist/collection/components/table/table.selection.js +239 -0
  222. package/dist/collection/components/table/table.tokens.js +28 -0
  223. package/dist/collection/components/table/table.types.js +1 -0
  224. package/dist/collection/components/table/table.utils.js +75 -0
  225. package/dist/collection/components/table/table.virtual-list.js +342 -0
  226. package/dist/collection/components/tag/tag.css +1 -1
  227. package/dist/collection/components/tag/tag.js +2 -2
  228. package/dist/collection/components/textarea/textarea.css +1 -1
  229. package/dist/collection/components/textarea/textarea.js +1 -1
  230. package/dist/collection/components/tooltip/tooltip.css +1 -1
  231. package/dist/collection/components/tooltip/tooltip.js +3 -27
  232. package/dist/collection/components/upload/upload.css +1 -1
  233. package/dist/collection/components/upload/upload.js +2 -2
  234. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  235. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +1 -1
  236. package/dist/collection/components/wizard/wizard.css +1 -1
  237. package/dist/collection/components/wizard/wizard.js +1 -1
  238. package/dist/collection/pages/scripts/code-editor.js +28 -3
  239. package/dist/collection/pages/scripts/pageLoader.js +286 -20
  240. package/dist/collection/pages/scripts/pageloader-preview.js +3 -1
  241. package/dist/components/br-avatar.js +1 -1
  242. package/dist/components/br-breadcrumb-item.js +1 -1
  243. package/dist/components/br-breadcrumb.js +1 -1
  244. package/dist/components/br-button.js +1 -1
  245. package/dist/components/br-card.js +1 -1
  246. package/dist/components/br-carousel-page.js +1 -1
  247. package/dist/components/br-carousel.js +1 -1
  248. package/dist/components/br-checkbox-group.js +1 -1
  249. package/dist/components/br-checkbox.js +1 -1
  250. package/dist/components/br-checkgroup.js +1 -1
  251. package/dist/components/br-collapse.js +1 -1
  252. package/dist/components/br-cookiebar-cookie.js +1 -1
  253. package/dist/components/br-cookiebar-group.js +1 -1
  254. package/dist/components/br-cookiebar-header.js +1 -1
  255. package/dist/components/br-cookiebar-link.js +1 -1
  256. package/dist/components/br-cookiebar-note-group.js +1 -1
  257. package/dist/components/br-cookiebar-note.js +1 -1
  258. package/dist/components/br-cookiebar.js +1 -1
  259. package/dist/components/br-crumb.js +1 -1
  260. package/dist/components/br-date-picker.js +1 -1
  261. package/dist/components/br-datetime-input.js +1 -1
  262. package/dist/components/br-datetime-picker.js +1 -1
  263. package/dist/components/br-divider.js +1 -1
  264. package/dist/components/br-dropdown.js +1 -1
  265. package/dist/components/br-footer-category.js +1 -1
  266. package/dist/components/br-footer-item.js +1 -1
  267. package/dist/components/br-footer-legal.js +1 -1
  268. package/dist/components/br-footer-logo.js +1 -1
  269. package/dist/components/br-footer-social.js +1 -1
  270. package/dist/components/br-footer.js +1 -1
  271. package/dist/components/br-header-function.js +1 -1
  272. package/dist/components/br-header-link.js +1 -1
  273. package/dist/components/br-header-list.js +1 -1
  274. package/dist/components/br-header-logo.js +1 -1
  275. package/dist/components/br-header.js +1 -1
  276. package/dist/components/br-icon.js +1 -1
  277. package/dist/components/br-input.js +1 -1
  278. package/dist/components/br-item.js +1 -1
  279. package/dist/components/br-link.js +1 -1
  280. package/dist/components/br-list.js +1 -1
  281. package/dist/components/br-loading.js +1 -1
  282. package/dist/components/br-magic-button.js +1 -1
  283. package/dist/components/br-menu-group.js +1 -1
  284. package/dist/components/br-menu-header.js +1 -1
  285. package/dist/components/br-menu-info.js +1 -1
  286. package/dist/components/br-menu-item.js +1 -1
  287. package/dist/components/br-menu-link.js +1 -1
  288. package/dist/components/br-menu-list.js +1 -1
  289. package/dist/components/br-menu-logo.js +1 -1
  290. package/dist/components/br-menu-social.js +1 -1
  291. package/dist/components/br-menu.js +1 -1
  292. package/dist/components/br-message.js +1 -1
  293. package/dist/components/br-modal.js +1 -1
  294. package/dist/components/br-notification-body.js +1 -1
  295. package/dist/components/br-notification-header.js +1 -1
  296. package/dist/components/br-notification-item.js +1 -1
  297. package/dist/components/br-notification.js +1 -1
  298. package/dist/components/br-pagination.js +1 -1
  299. package/dist/components/br-radio-group.js +1 -1
  300. package/dist/components/br-radio.js +1 -1
  301. package/dist/components/br-scrim.js +1 -1
  302. package/dist/components/br-select-input.js +1 -1
  303. package/dist/components/br-select-list.js +1 -1
  304. package/dist/components/br-select-option.js +1 -1
  305. package/dist/components/br-select.js +1 -1
  306. package/dist/components/br-sign-in.js +1 -1
  307. package/dist/components/br-skip-link-item.js +1 -1
  308. package/dist/components/br-skip-link.js +1 -1
  309. package/dist/components/br-skiplink-item.js +1 -1
  310. package/dist/components/br-slider.js +1 -1
  311. package/dist/components/br-step-item.js +1 -1
  312. package/dist/components/br-step.js +1 -1
  313. package/dist/components/br-switch.js +1 -1
  314. package/dist/components/br-tab-item.js +1 -1
  315. package/dist/components/br-tab.js +1 -1
  316. package/dist/components/br-table-action.d.ts +11 -0
  317. package/dist/components/br-table-action.js +5 -0
  318. package/dist/components/br-table-bar.d.ts +11 -0
  319. package/dist/components/br-table-bar.js +5 -0
  320. package/dist/components/br-table-body.js +1 -1
  321. package/dist/components/br-table-cell.js +1 -1
  322. package/dist/components/br-table-footer.d.ts +11 -0
  323. package/dist/components/br-table-footer.js +5 -0
  324. package/dist/components/br-table-header-cell.js +1 -1
  325. package/dist/components/br-table-header.js +1 -1
  326. package/dist/components/br-table-row.js +1 -1
  327. package/dist/components/br-table.js +1 -1
  328. package/dist/components/br-tag.js +1 -1
  329. package/dist/components/br-textarea.js +1 -1
  330. package/dist/components/br-time-picker.js +1 -1
  331. package/dist/components/br-tooltip.js +1 -1
  332. package/dist/components/br-upload.js +1 -1
  333. package/dist/components/br-wizard-panel.js +1 -1
  334. package/dist/components/br-wizard.js +1 -1
  335. package/dist/components/index.d.ts +6 -0
  336. package/dist/components/index.js +1 -1
  337. package/dist/components/p-082jxuTj.js +5 -0
  338. package/dist/components/p-381n6AwK.js +5 -0
  339. package/dist/components/{p-CyXVsiz9.js → p-B5_zbRAr.js} +1 -1
  340. package/dist/components/p-BE1gDPwC.js +5 -0
  341. package/dist/components/p-BV-c2pxt.js +5 -0
  342. package/dist/components/p-BfFbYAuJ.js +5 -0
  343. package/dist/components/{p-DcMjwTqu.js → p-Bi2E_w9Q.js} +1 -1
  344. package/dist/components/p-Bk8YcMql.js +5 -0
  345. package/dist/components/p-C3ISxUGw.js +5 -0
  346. package/dist/components/p-C3J0TVQO.js +5 -0
  347. package/dist/components/p-C6m13lCc.js +5 -0
  348. package/dist/components/{p-DBmwzG9E.js → p-CCWJ-H33.js} +1 -1
  349. package/dist/components/p-CJuHirYK.js +5 -0
  350. package/dist/components/{p-SWQlgYWR.js → p-CKS7ggLM.js} +1 -1
  351. package/dist/components/p-COSFBwu9.js +5 -0
  352. package/dist/components/p-CWPrXYam.js +5 -0
  353. package/dist/components/p-Ca89D_0s.js +5 -0
  354. package/dist/components/p-CbN58CFi.js +5 -0
  355. package/dist/components/p-CjjxTkKb.js +5 -0
  356. package/dist/components/p-Ck9t4WSb.js +5 -0
  357. package/dist/components/p-CvfVwD6_.js +5 -0
  358. package/dist/components/p-D-1sfjhG.js +5 -0
  359. package/dist/components/p-D-p4vLlP.js +5 -0
  360. package/dist/components/p-D6DArHGH.js +5 -0
  361. package/dist/components/p-DD3BItoS.js +5 -0
  362. package/dist/components/{p-448Z5r2f.js → p-DEIKwFIf.js} +1 -1
  363. package/dist/components/p-DHHAIESt.js +5 -0
  364. package/dist/components/{p-Jk_KQE5V.js → p-DMj5iO7_.js} +1 -1
  365. package/dist/components/p-DUI-S07G.js +5 -0
  366. package/dist/components/p-D_K9JH6J.js +5 -0
  367. package/dist/components/p-DiQp2Lap.js +5 -0
  368. package/dist/components/{p-DJKZ8ktB.js → p-Dvbqhybt.js} +1 -1
  369. package/dist/components/p-Dy7MSvt-.js +5 -0
  370. package/dist/components/p-DywTXNHQ.js +5 -0
  371. package/dist/components/p-Ft_P7Roz.js +5 -0
  372. package/dist/components/p-KuiFoKDl.js +5 -0
  373. package/dist/components/p-MiiczSWA.js +5 -0
  374. package/dist/components/p-Um3K2SHu.js +5 -0
  375. package/dist/components/p-YxddSP6q.js +5 -0
  376. package/dist/components/p-Zk91ebVT.js +5 -0
  377. package/dist/components/p-jv2oG0vH.js +5 -0
  378. package/dist/components/p-nrG_Gd0c.js +5 -0
  379. package/dist/components/p-syLEZrcg.js +5 -0
  380. package/dist/components/{p-jvKQA6x7.js → p-ydfWTgrA.js} +1 -1
  381. package/dist/esm/br-avatar.entry.js +3 -3
  382. package/dist/esm/br-breadcrumb-item.entry.js +1 -1
  383. package/dist/esm/br-breadcrumb.entry.js +12 -12
  384. package/dist/esm/br-button_2.entry.js +6 -6
  385. package/dist/esm/br-card.entry.js +2 -2
  386. package/dist/esm/br-carousel-page.entry.js +2 -2
  387. package/dist/esm/br-carousel.entry.js +6 -6
  388. package/dist/esm/br-checkbox-group.entry.js +3 -3
  389. package/dist/esm/br-checkbox.entry.js +3 -3
  390. package/dist/esm/br-checkgroup.entry.js +1 -1
  391. package/dist/esm/br-collapse_2.entry.js +9 -9
  392. package/dist/esm/br-cookiebar-cookie.entry.js +2 -2
  393. package/dist/esm/br-cookiebar-group.entry.js +4 -4
  394. package/dist/esm/br-cookiebar-header.entry.js +2 -2
  395. package/dist/esm/br-cookiebar-link.entry.js +4 -4
  396. package/dist/esm/br-cookiebar-note-group.entry.js +3 -3
  397. package/dist/esm/br-cookiebar-note.entry.js +2 -2
  398. package/dist/esm/br-cookiebar.entry.js +6 -6
  399. package/dist/esm/br-crumb.entry.js +1 -1
  400. package/dist/esm/br-date-picker_3.entry.js +14 -14
  401. package/dist/esm/br-datetime-picker.entry.js +5 -22
  402. package/dist/esm/br-divider.entry.js +3 -3
  403. package/dist/esm/br-dropdown.entry.js +675 -0
  404. package/dist/esm/br-footer-category.entry.js +2 -2
  405. package/dist/esm/br-footer-item.entry.js +3 -3
  406. package/dist/esm/br-footer-legal.entry.js +2 -2
  407. package/dist/esm/br-footer-logo.entry.js +3 -3
  408. package/dist/esm/br-footer-social.entry.js +4 -4
  409. package/dist/esm/br-footer.entry.js +3 -3
  410. package/dist/esm/br-header-function.entry.js +3 -3
  411. package/dist/esm/br-header-link.entry.js +3 -3
  412. package/dist/esm/br-header-list.entry.js +4 -4
  413. package/dist/esm/br-header-logo.entry.js +3 -3
  414. package/dist/esm/br-header.entry.js +7 -7
  415. package/dist/esm/br-icon.entry.js +173 -159
  416. package/dist/esm/br-input_2.entry.js +1424 -0
  417. package/dist/esm/br-item.entry.js +3 -3
  418. package/dist/esm/br-link.entry.js +3 -3
  419. package/dist/esm/br-magic-button.entry.js +12 -13
  420. package/dist/esm/br-menu-group.entry.js +2 -2
  421. package/dist/esm/br-menu-header.entry.js +3 -3
  422. package/dist/esm/br-menu-info.entry.js +2 -2
  423. package/dist/esm/br-menu-item.entry.js +4 -4
  424. package/dist/esm/br-menu-link.entry.js +4 -4
  425. package/dist/esm/br-menu-list.entry.js +2 -2
  426. package/dist/esm/br-menu-logo.entry.js +2 -2
  427. package/dist/esm/br-menu-social.entry.js +3 -3
  428. package/dist/esm/br-menu.entry.js +6 -6
  429. package/dist/esm/br-modal.entry.js +3 -3
  430. package/dist/esm/br-notification-body.entry.js +2 -2
  431. package/dist/esm/br-notification-header.entry.js +2 -2
  432. package/dist/esm/br-notification-item.entry.js +3 -3
  433. package/dist/esm/br-notification.entry.js +3 -3
  434. package/dist/esm/{br-dropdown_2.entry.js → br-pagination_2.entry.js} +813 -558
  435. package/dist/esm/br-radio-group.entry.js +3 -3
  436. package/dist/esm/br-radio.entry.js +3 -3
  437. package/dist/esm/br-scrim.entry.js +3 -3
  438. package/dist/esm/br-select-input_3.entry.js +17 -94
  439. package/dist/esm/br-sign-in.entry.js +4 -4
  440. package/dist/esm/br-skip-link-item.entry.js +1 -1
  441. package/dist/esm/br-skip-link.entry.js +3 -3
  442. package/dist/esm/br-skiplink-item.entry.js +3 -3
  443. package/dist/esm/br-slider.entry.js +4 -4
  444. package/dist/esm/br-step_2.entry.js +4 -4
  445. package/dist/esm/br-switch.entry.js +3 -3
  446. package/dist/esm/br-tab-item.entry.js +4 -4
  447. package/dist/esm/br-tab.entry.js +8 -8
  448. package/dist/esm/br-table-action_6.entry.js +1493 -0
  449. package/dist/esm/br-table-body.entry.js +4 -16
  450. package/dist/esm/br-table-header.entry.js +4 -16
  451. package/dist/esm/br-table.entry.js +2591 -408
  452. package/dist/esm/br-tag.entry.js +5 -5
  453. package/dist/esm/br-textarea.entry.js +4 -4
  454. package/dist/esm/br-tooltip.entry.js +6 -30
  455. package/dist/esm/br-upload.entry.js +5 -5
  456. package/dist/esm/br-wizard-panel.entry.js +3 -3
  457. package/dist/esm/br-wizard.entry.js +4 -4
  458. package/dist/esm/helpers-BNW9pAhl.js +26 -0
  459. package/dist/esm/{icon.utils-zlORkiHQ.js → icon.utils-CXDYKUBz.js} +1 -1
  460. package/dist/esm/{index-ConyRdJe.js → index-CwL52661.js} +34 -35
  461. package/dist/esm/loader.js +3 -3
  462. package/dist/esm/{props-D07GjR4_.js → props-BbxNgEcJ.js} +1 -1
  463. package/dist/esm/table.utils-CtVdlcgI.js +706 -0
  464. package/dist/esm/webcomponents.js +3 -3
  465. package/dist/hydrate/index.js +5269 -1302
  466. package/dist/hydrate/index.mjs +5269 -1302
  467. package/dist/types/components/collapse/collapse.d.ts +2 -2
  468. package/dist/types/components/footer/footer-social/footer-social.d.ts +2 -3
  469. package/dist/types/components/icon/icon.d.ts +6 -6
  470. package/dist/types/components/icon/icon.utils.d.ts +1 -1
  471. package/dist/types/components/input/input.d.ts +7 -1
  472. package/dist/types/components/input/input.types.d.ts +18 -0
  473. package/dist/types/components/magic-button/magic-button.d.ts +7 -8
  474. package/dist/types/components/menu/menu-social/menu-social.d.ts +2 -3
  475. package/dist/types/components/select/select-input/select-input.d.ts +1 -4
  476. package/dist/types/components/select/select-option/select-option.d.ts +3 -1
  477. package/dist/types/components/slider/slider.d.ts +4 -4
  478. package/dist/types/components/tab/tab-item/tab-item.d.ts +2 -2
  479. package/dist/types/components/tab/tab.d.ts +1 -1
  480. package/dist/types/components/table/table-action/table-action.d.ts +107 -0
  481. package/dist/types/components/table/table-bar/table-bar.d.ts +193 -0
  482. package/dist/types/components/table/table-body/table-body.d.ts +11 -16
  483. package/dist/types/components/table/table-cell/table-cell.d.ts +178 -38
  484. package/dist/types/components/table/table-footer/table-footer.d.ts +40 -0
  485. package/dist/types/components/table/table-footer/table-footer.types.d.ts +12 -0
  486. package/dist/types/components/table/table-header/table-header.d.ts +10 -16
  487. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +102 -53
  488. package/dist/types/components/table/table-row/table-row.d.ts +88 -29
  489. package/dist/types/components/table/table.actions-tooltip.d.ts +11 -0
  490. package/dist/types/components/table/{table-constants.d.ts → table.constants.d.ts} +50 -77
  491. package/dist/types/components/table/table.d.ts +601 -222
  492. package/dist/types/components/table/table.data.d.ts +78 -0
  493. package/dist/types/components/table/table.expansion.d.ts +65 -0
  494. package/dist/types/components/table/table.expansion.elements.d.ts +30 -0
  495. package/dist/types/components/table/table.grouping.d.ts +25 -0
  496. package/dist/types/components/table/table.header-height.d.ts +17 -0
  497. package/dist/types/components/table/table.keyboard.d.ts +53 -0
  498. package/dist/types/components/table/table.scroll-shadows.d.ts +11 -0
  499. package/dist/types/components/table/table.selection.d.ts +84 -0
  500. package/dist/types/components/table/table.selection.elements.d.ts +42 -0
  501. package/dist/types/components/table/table.tokens.d.ts +24 -0
  502. package/dist/types/components/table/table.types.d.ts +199 -0
  503. package/dist/types/components/table/table.utils.d.ts +52 -0
  504. package/dist/types/components/table/table.virtual-list.d.ts +96 -0
  505. package/dist/types/components.d.ts +1401 -279
  506. package/dist/webcomponents/{p-85c8d060.entry.js → p-07e80bf8.entry.js} +1 -1
  507. package/dist/webcomponents/p-10d81622.entry.js +5 -0
  508. package/dist/webcomponents/{p-a9f16a65.entry.js → p-12d5f533.entry.js} +1 -1
  509. package/dist/webcomponents/p-15699e8a.entry.js +5 -0
  510. package/dist/webcomponents/{p-bbcde1ea.entry.js → p-15e2f5cc.entry.js} +1 -1
  511. package/dist/webcomponents/{p-5528b466.entry.js → p-16d27d5c.entry.js} +1 -1
  512. package/dist/webcomponents/p-18d3fab8.entry.js +5 -0
  513. package/dist/webcomponents/p-23c916d9.entry.js +5 -0
  514. package/dist/webcomponents/p-2aee69fd.entry.js +5 -0
  515. package/dist/webcomponents/p-2d3db296.entry.js +5 -0
  516. package/dist/webcomponents/p-2ed6afdd.entry.js +5 -0
  517. package/dist/webcomponents/{p-bbf47e78.entry.js → p-30c865e6.entry.js} +1 -1
  518. package/dist/webcomponents/p-32afb78c.entry.js +5 -0
  519. package/dist/webcomponents/p-33d24cbd.entry.js +5 -0
  520. package/dist/webcomponents/p-35d63edd.entry.js +5 -0
  521. package/dist/webcomponents/p-3b1ff55e.entry.js +5 -0
  522. package/dist/webcomponents/p-3c7246cf.entry.js +5 -0
  523. package/dist/webcomponents/{p-11d4edc5.entry.js → p-407e7b69.entry.js} +1 -1
  524. package/dist/webcomponents/{p-53550e8c.entry.js → p-41b12e3c.entry.js} +1 -1
  525. package/dist/webcomponents/p-47adc17f.entry.js +5 -0
  526. package/dist/webcomponents/{p-21e10074.entry.js → p-48fc8e56.entry.js} +1 -1
  527. package/dist/webcomponents/p-4a44c8b8.entry.js +5 -0
  528. package/dist/webcomponents/{p-6d58ab4f.entry.js → p-4b0f3701.entry.js} +1 -1
  529. package/dist/webcomponents/{p-84dfbfdd.entry.js → p-4b66200c.entry.js} +1 -1
  530. package/dist/webcomponents/{p-324afbce.entry.js → p-4c0a1c05.entry.js} +1 -1
  531. package/dist/webcomponents/p-4c72d706.entry.js +5 -0
  532. package/dist/webcomponents/p-505173e0.entry.js +5 -0
  533. package/dist/webcomponents/p-50caea68.entry.js +5 -0
  534. package/dist/webcomponents/p-5419fd2c.entry.js +5 -0
  535. package/dist/webcomponents/{p-ed3fa8ec.entry.js → p-5693e0e7.entry.js} +1 -1
  536. package/dist/webcomponents/p-58247764.entry.js +5 -0
  537. package/dist/webcomponents/{p-3926cc91.entry.js → p-5d0f4851.entry.js} +1 -1
  538. package/dist/webcomponents/{p-39a7826d.entry.js → p-60c949c8.entry.js} +1 -1
  539. package/dist/webcomponents/p-61b84035.entry.js +5 -0
  540. package/dist/webcomponents/{p-e121429a.entry.js → p-62a74e0a.entry.js} +1 -1
  541. package/dist/webcomponents/p-6450913e.entry.js +5 -0
  542. package/dist/webcomponents/p-66c8b8d9.entry.js +5 -0
  543. package/dist/webcomponents/{p-c6f2f17b.entry.js → p-67281ef1.entry.js} +1 -1
  544. package/dist/webcomponents/{p-087ed5e7.entry.js → p-6e128c7a.entry.js} +1 -1
  545. package/dist/webcomponents/p-725e92ab.entry.js +5 -0
  546. package/dist/webcomponents/{p-19b4b1b7.entry.js → p-74726f20.entry.js} +1 -1
  547. package/dist/webcomponents/{p-975ea5c7.entry.js → p-75bd655b.entry.js} +1 -1
  548. package/dist/webcomponents/p-7bf78e48.entry.js +5 -0
  549. package/dist/webcomponents/p-7cc28ecf.entry.js +5 -0
  550. package/dist/webcomponents/{p-913d6f28.entry.js → p-7ec01a99.entry.js} +1 -1
  551. package/dist/webcomponents/{p-d205f3fd.entry.js → p-7f17dbca.entry.js} +1 -1
  552. package/dist/webcomponents/{p-152482f9.entry.js → p-8120f3ce.entry.js} +1 -1
  553. package/dist/webcomponents/p-8ded7870.entry.js +5 -0
  554. package/dist/webcomponents/p-9ab989d1.entry.js +5 -0
  555. package/dist/webcomponents/p-9be642ff.entry.js +5 -0
  556. package/dist/webcomponents/p-9d41995a.entry.js +5 -0
  557. package/dist/webcomponents/{p-EbtQZm5s.js → p-CjVabz-h.js} +1 -1
  558. package/dist/webcomponents/{p-ConyRdJe.js → p-CwL52661.js} +2 -2
  559. package/dist/webcomponents/p-Zk91ebVT.js +5 -0
  560. package/dist/webcomponents/p-_BMaB_68.js +5 -0
  561. package/dist/webcomponents/p-a150b61d.entry.js +5 -0
  562. package/dist/webcomponents/{p-55e0822d.entry.js → p-a264acf6.entry.js} +1 -1
  563. package/dist/webcomponents/p-a5616523.entry.js +5 -0
  564. package/dist/webcomponents/{p-eb5806c7.entry.js → p-ae3dfb9c.entry.js} +1 -1
  565. package/dist/webcomponents/p-b1aeb805.entry.js +5 -0
  566. package/dist/webcomponents/p-b8eea3ef.entry.js +5 -0
  567. package/dist/webcomponents/p-c6952f8d.entry.js +5 -0
  568. package/dist/webcomponents/p-c743e5c5.entry.js +5 -0
  569. package/dist/webcomponents/p-d0c659c3.entry.js +5 -0
  570. package/dist/webcomponents/p-d3dec923.entry.js +5 -0
  571. package/dist/webcomponents/{p-12dd22af.entry.js → p-d5405bbe.entry.js} +1 -1
  572. package/dist/webcomponents/{p-c29268b5.entry.js → p-d6d3a552.entry.js} +1 -1
  573. package/dist/webcomponents/p-dab66328.entry.js +5 -0
  574. package/dist/webcomponents/{p-cb1e08b1.entry.js → p-db02533d.entry.js} +1 -1
  575. package/dist/webcomponents/p-dda22999.entry.js +5 -0
  576. package/dist/webcomponents/p-e2a46f44.entry.js +5 -0
  577. package/dist/webcomponents/{p-e0ccf189.entry.js → p-e3680ff8.entry.js} +1 -1
  578. package/dist/webcomponents/p-e5b9652d.entry.js +5 -0
  579. package/dist/webcomponents/p-e7f02302.entry.js +5 -0
  580. package/dist/webcomponents/p-f0720e23.entry.js +5 -0
  581. package/dist/webcomponents/p-f244009d.entry.js +5 -0
  582. package/dist/webcomponents/p-f32c40ee.entry.js +5 -0
  583. package/dist/webcomponents/{p-e4b968b5.entry.js → p-f697abbd.entry.js} +1 -1
  584. package/dist/webcomponents/p-f7ed35ef.entry.js +5 -0
  585. package/dist/webcomponents/p-f8576e0a.entry.js +5 -0
  586. package/dist/webcomponents/p-fcc62731.entry.js +5 -0
  587. package/dist/webcomponents/webcomponents.esm.js +1 -1
  588. package/package.json +1 -1
  589. package/dist/cjs/br-input.cjs.entry.js +0 -763
  590. package/dist/cjs/br-loading.cjs.entry.js +0 -567
  591. package/dist/cjs/br-pagination.cjs.entry.js +0 -916
  592. package/dist/cjs/br-table-cell.cjs.entry.js +0 -201
  593. package/dist/cjs/br-table-header-cell.cjs.entry.js +0 -189
  594. package/dist/cjs/br-table-row.cjs.entry.js +0 -95
  595. package/dist/cjs/table-constants-BOPSay0B.js +0 -183
  596. package/dist/collection/components/table/table-tokens.js +0 -50
  597. package/dist/collection/components/table/table-utils.js +0 -44
  598. package/dist/components/p-AhfgJCUp.js +0 -5
  599. package/dist/components/p-AoNL6BaW.js +0 -5
  600. package/dist/components/p-B468MCYC.js +0 -5
  601. package/dist/components/p-B985Ov_x.js +0 -5
  602. package/dist/components/p-BOWQIHQA.js +0 -5
  603. package/dist/components/p-BPQrgCRr.js +0 -5
  604. package/dist/components/p-BwQT0fOJ.js +0 -5
  605. package/dist/components/p-CAgbUwsx.js +0 -5
  606. package/dist/components/p-CFXey8i8.js +0 -5
  607. package/dist/components/p-CW8xwk6J.js +0 -5
  608. package/dist/components/p-CXMwM9m4.js +0 -5
  609. package/dist/components/p-CYZVdKeO.js +0 -5
  610. package/dist/components/p-CeWbZN7V.js +0 -5
  611. package/dist/components/p-DDe0tQEO.js +0 -5
  612. package/dist/components/p-DRsZ9GNg.js +0 -5
  613. package/dist/components/p-DU54cqCf.js +0 -5
  614. package/dist/components/p-DVJlmlEX.js +0 -5
  615. package/dist/components/p-Dd1qCWAK.js +0 -5
  616. package/dist/components/p-DiLI514I.js +0 -5
  617. package/dist/components/p-DoWy_P8b.js +0 -5
  618. package/dist/components/p-HbhTnepI.js +0 -5
  619. package/dist/components/p-Or3FLzbz.js +0 -5
  620. package/dist/components/p-Zb9nyfTY.js +0 -5
  621. package/dist/components/p-pQb-3jFY.js +0 -5
  622. package/dist/components/p-qX6sHxOk.js +0 -5
  623. package/dist/esm/br-input.entry.js +0 -761
  624. package/dist/esm/br-loading.entry.js +0 -565
  625. package/dist/esm/br-pagination.entry.js +0 -914
  626. package/dist/esm/br-table-cell.entry.js +0 -199
  627. package/dist/esm/br-table-header-cell.entry.js +0 -187
  628. package/dist/esm/br-table-row.entry.js +0 -93
  629. package/dist/esm/table-constants-CXMwM9m4.js +0 -170
  630. package/dist/types/components/table/table-tokens.d.ts +0 -46
  631. package/dist/types/components/table/table-types.d.ts +0 -107
  632. package/dist/types/components/table/table-utils.d.ts +0 -47
  633. package/dist/webcomponents/p-031a2256.entry.js +0 -5
  634. package/dist/webcomponents/p-0602e5b1.entry.js +0 -5
  635. package/dist/webcomponents/p-079d5f69.entry.js +0 -5
  636. package/dist/webcomponents/p-0d5a9ebf.entry.js +0 -5
  637. package/dist/webcomponents/p-105b4d06.entry.js +0 -5
  638. package/dist/webcomponents/p-14aedf0d.entry.js +0 -5
  639. package/dist/webcomponents/p-1cd1126e.entry.js +0 -5
  640. package/dist/webcomponents/p-2271ea84.entry.js +0 -5
  641. package/dist/webcomponents/p-271b1ede.entry.js +0 -5
  642. package/dist/webcomponents/p-28f732fc.entry.js +0 -5
  643. package/dist/webcomponents/p-2971d38a.entry.js +0 -5
  644. package/dist/webcomponents/p-2ac48875.entry.js +0 -5
  645. package/dist/webcomponents/p-2b1a919c.entry.js +0 -5
  646. package/dist/webcomponents/p-2da57966.entry.js +0 -5
  647. package/dist/webcomponents/p-2e81b0b3.entry.js +0 -5
  648. package/dist/webcomponents/p-2eececed.entry.js +0 -5
  649. package/dist/webcomponents/p-2f904c4a.entry.js +0 -5
  650. package/dist/webcomponents/p-32414f1c.entry.js +0 -5
  651. package/dist/webcomponents/p-32ea6342.entry.js +0 -5
  652. package/dist/webcomponents/p-330ec8ab.entry.js +0 -5
  653. package/dist/webcomponents/p-374f83b1.entry.js +0 -5
  654. package/dist/webcomponents/p-3bcc2c58.entry.js +0 -5
  655. package/dist/webcomponents/p-3c7ce0e4.entry.js +0 -5
  656. package/dist/webcomponents/p-467842ca.entry.js +0 -5
  657. package/dist/webcomponents/p-53e71a8a.entry.js +0 -5
  658. package/dist/webcomponents/p-58bacbe1.entry.js +0 -5
  659. package/dist/webcomponents/p-5a5ed7d8.entry.js +0 -5
  660. package/dist/webcomponents/p-621f0fa8.entry.js +0 -5
  661. package/dist/webcomponents/p-6514a75d.entry.js +0 -5
  662. package/dist/webcomponents/p-678b43a6.entry.js +0 -5
  663. package/dist/webcomponents/p-6b6be415.entry.js +0 -5
  664. package/dist/webcomponents/p-6ff9b26e.entry.js +0 -5
  665. package/dist/webcomponents/p-992167bc.entry.js +0 -5
  666. package/dist/webcomponents/p-CXMwM9m4.js +0 -5
  667. package/dist/webcomponents/p-a21872bf.entry.js +0 -5
  668. package/dist/webcomponents/p-b8d4ace3.entry.js +0 -5
  669. package/dist/webcomponents/p-bf35e506.entry.js +0 -5
  670. package/dist/webcomponents/p-c09af3cd.entry.js +0 -5
  671. package/dist/webcomponents/p-c3e61c39.entry.js +0 -5
  672. package/dist/webcomponents/p-c6b2545a.entry.js +0 -5
  673. package/dist/webcomponents/p-cae39e13.entry.js +0 -5
  674. package/dist/webcomponents/p-cb690a87.entry.js +0 -5
  675. package/dist/webcomponents/p-d0be7243.entry.js +0 -5
  676. package/dist/webcomponents/p-d191c6e3.entry.js +0 -5
  677. package/dist/webcomponents/p-d3bd2c40.entry.js +0 -5
  678. package/dist/webcomponents/p-dbeea64e.entry.js +0 -5
  679. package/dist/webcomponents/p-df475129.entry.js +0 -5
  680. package/dist/webcomponents/p-e661c024.entry.js +0 -5
  681. package/dist/webcomponents/p-e6c6f305.entry.js +0 -5
  682. package/dist/webcomponents/p-e8291be2.entry.js +0 -5
  683. package/dist/webcomponents/p-f9084f16.entry.js +0 -5
  684. package/dist/webcomponents/p-fad3aa61.entry.js +0 -5
  685. /package/dist/collection/components/table/{table-types.js → table-footer/table-footer.types.js} +0 -0
  686. /package/dist/webcomponents/{p-zlORkiHQ.js → p-CXDYKUBz.js} +0 -0
@@ -2,683 +2,922 @@
2
2
  * Construído por SERPRO
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-ConyRdJe.js';
6
- import { l as listenForExternalBlockingSurface } from './floating-surface-dismiss-BWXfdbQH.js';
7
- import { F as FloatingUIManager } from './floating-ui-CskvaxD5.js';
5
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-CwL52661.js';
8
6
  import { g as generateUniqueId } from './id-BeJxz5TQ.js';
9
- import { i as isNil } from './isNil-B-qLmYZC.js';
10
- import { g as getScrollBehavior } from './motion-DWhzxlCx.js';
11
- import { f as findComposedOwner, c as createMicrotaskReconciler } from './ownership-CDtFCbKp.js';
12
- import { r as resolveAllowedPropValue, b as resolveIntegerPropValue, a as resolveDensity, c as resolveNumberPropValue } from './props-D07GjR4_.js';
7
+ import { r as reportInvalidPropValue } from './prop-warning-BlGV-x0w.js';
8
+ import { b as resolveIntegerPropValue, a as resolveDensity, r as resolveAllowedPropValue, c as resolveNumberPropValue } from './props-BbxNgEcJ.js';
13
9
  import { d as dispatchNativeFormEvent } from './event-6Da1SZ3J.js';
10
+ import { l as listenForExternalBlockingSurface } from './floating-surface-dismiss-BWXfdbQH.js';
14
11
  import { i as isFormControlDisabled, g as getFormValidationState, s as safeSetFormValue, e as syncNativeFormValidity, r as resolveFormValidator } from './validator-BkWWrDEr.js';
15
- import { r as reportInvalidPropValue } from './prop-warning-BlGV-x0w.js';
12
+ import { c as createMicrotaskReconciler, f as findComposedOwner } from './ownership-CDtFCbKp.js';
16
13
  import { h as hasNamedLightDomSlot, a as hasAssignedSlotContent } from './slot-Bt01zQ7-.js';
17
14
  import { S as SELECT_ALL_OPTION_VALUE, t as transitionAllSelection, a as transitionSelection, f as filterSelectOptions } from './select.utils-BYsh2ZdE.js';
18
- import './floating-ui.dom-D9Zo6FlV.js';
19
15
 
20
- const dropdownCss = () => `*,*::before,*::after{box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.align-items-center{align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{flex:1 0 0%;min-width:8.3333333333%}.col-auto{flex:0 0 auto;width:auto}.col-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-fluid,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:flex;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.ease{animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-out{animation-timing-function:cubic-bezier(0, 0, 0.58, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fast{animation-duration:var(--duration-fast)}.slow{animation-duration:var(--duration-slow)}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mb-4{margin-bottom:var(--spacing-scale-3x) !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}.highlight{background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}fieldset[disabled]{opacity:1}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-bold{font-weight:700 !important}.text-base{font-size:var(--font-size-scale-base) !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a.focus-visible,a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}.main-content a{text-decoration:underline}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}tr.selected,tr.is-selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}fieldset,.fieldset{border:var(--surface-width-none);margin-bottom:var(--spacing-scale-5x);margin-top:0;padding:0}legend,.legend{color:var(--color);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2x);margin-top:var(--spacing-scale-2x)}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}pre,.pre{background:var(--gray-5);margin:var(--spacing-scale-2x) 0 var(--spacing-scale-4x);padding:var(--spacing-scale-2x)}*[data-toggle=collapse]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse].focus-visible,*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}@media (prefers-reduced-motion: reduce){:host,:host::before,:host::after,:host *,:host *::before,:host *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}}:host-context([data-wbc-reduced-motion=true])::before,:host-context([data-wbc-reduced-motion=true])::after,:host-context([data-wbc-reduced-motion=true]) *,:host-context([data-wbc-reduced-motion=true]) *::before,:host-context([data-wbc-reduced-motion=true]) *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}:host{display:inline-block;position:relative}:host #trigger{display:inline-flex;align-items:center;cursor:pointer;outline:none}:host [part=trigger-arrow]{margin-left:var(--spacing-scale-half)}:host #trigger::slotted([slot=trigger]):focus:focus{outline:none}:host #trigger::slotted([slot=trigger]):focus.focus-visible,:host #trigger::slotted([slot=trigger]):focus:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host ::slotted([slot=target] *:focus):focus{outline:none}:host ::slotted([slot=target] *:focus).focus-visible,:host ::slotted([slot=target] *:focus):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host #target{display:none;visibility:hidden;pointer-events:none;opacity:0;transition:none}@media (prefers-reduced-motion: no-preference){:host #target{transition:opacity var(--duration-fast, 300ms) var(--animation-ease-out, ease-out)}}:host #target{position:absolute;z-index:var(--z-index-layer-1);box-shadow:var(--surface-shadow-sm);border-radius:0}:host #target:focus:focus{outline:none}:host #target:focus.focus-visible,:host #target:focus:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host([match-trigger-width]) #target{box-sizing:border-box}:host([arrow-position=left]) [part=trigger-arrow]{margin-left:0;margin-right:var(--spacing-scale-half)}:host([is-open]) #target{display:block;width:max-content}:host([is-open]) #target[data-positioned=true]{visibility:visible;pointer-events:auto;opacity:1}@media (max-width: 575px){:host([is-open]:not([match-trigger-width])) #target{width:var(--dropdown-target-width, 100vw) !important;max-width:var(--dropdown-target-max-width, 100vw) !important}}`;
16
+ const paginationCss = () => `*,*::before,*::after{box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.align-items-center{align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{flex:1 0 0%;min-width:8.3333333333%}.col-auto{flex:0 0 auto;width:auto}.col-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-fluid,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:flex;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.ease{animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-out{animation-timing-function:cubic-bezier(0, 0, 0.58, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fast{animation-duration:var(--duration-fast)}.slow{animation-duration:var(--duration-slow)}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mb-4{margin-bottom:var(--spacing-scale-3x) !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.highlight{background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}fieldset[disabled]{opacity:1}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-bold{font-weight:700 !important}.text-base{font-size:var(--font-size-scale-base) !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a.focus-visible,a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}.main-content a{text-decoration:underline}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}tr.selected,tr.is-selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}fieldset,.fieldset{border:var(--surface-width-none);margin-bottom:var(--spacing-scale-5x);margin-top:0;padding:0}legend,.legend{color:var(--color);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2x);margin-top:var(--spacing-scale-2x)}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}pre,.pre{background:var(--gray-5);margin:var(--spacing-scale-2x) 0 var(--spacing-scale-4x);padding:var(--spacing-scale-2x)}mark,.mark{background:var(--red-warm-vivid-10);color:var(--color)}*[data-toggle=collapse]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse].focus-visible,*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}@media (prefers-reduced-motion: reduce){:host,:host::before,:host::after,:host *,:host *::before,:host *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}}:host-context([data-wbc-reduced-motion=true])::before,:host-context([data-wbc-reduced-motion=true])::after,:host-context([data-wbc-reduced-motion=true]) *,:host-context([data-wbc-reduced-motion=true]) *::before,:host-context([data-wbc-reduced-motion=true]) *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}.br-pagination{--pagination-margin:var(--spacing-scale-base);--pagination-select-width:88px;--pagination-size:var(--pagination-medium);--pagination-small:24px;--pagination-medium:32px;--pagination-large:40px;color:var(--color);display:flex;flex-wrap:wrap;font-weight:var(--font-weight);justify-content:center}.br-pagination ul{align-items:center;display:flex;list-style:none;margin:0;padding:0}.br-pagination li{padding:0}.br-pagination.dark-mode .page{color:var(--color-dark)}.br-pagination.dark-mode .br-select .br-item label{color:var(--color-dark)}.br-pagination .page:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}.br-pagination .page{align-items:center;border:1px solid rgba(0,0,0,0);border-radius:100em;color:var(--interactive);display:inline-flex;justify-content:center;margin:0 calc(var(--pagination-margin)*.5);min-height:var(--pagination-size);min-width:var(--pagination-size);padding:0 var(--spacing-scale-base);white-space:nowrap}.br-pagination .page.active{background:var(--active);color:var(--color-dark);font-weight:var(--font-weight-semi-bold)}.br-pagination .pagination-ellipsis{margin:0 calc(var(--pagination-margin)*.5);position:relative}.br-pagination .pagination-ellipsis .br-button{--button-size:var(--pagination-size)}.br-pagination .pagination-ellipsis .br-list::-webkit-scrollbar{height:var(--spacing-scale-base);width:var(--spacing-scale-base)}.br-pagination .pagination-ellipsis .br-list::-webkit-scrollbar-track{background:var(--gray-10)}.br-pagination .pagination-ellipsis .br-list::-webkit-scrollbar-thumb{background:var(--gray-30)}.br-pagination .pagination-ellipsis .br-list:hover::-webkit-scrollbar-thumb{background:var(--gray-40)}.br-pagination .pagination-ellipsis .br-list{max-height:220px;min-width:4em;overflow-y:auto;z-index:var(--z-index-layer-1)}.br-pagination.small{--pagination-size:var(--pagination-small)}.br-pagination.medium{--pagination-size:var(--pagination-medium)}.br-pagination.large{--pagination-size:var(--pagination-large)}.br-pagination .pagination-information{align-items:center;display:flex}.br-pagination .pagination-per-page,.br-pagination .pagination-go-to-page{align-items:center;display:flex}.br-pagination .pagination-per-page .br-input,.br-pagination .pagination-go-to-page .br-input{align-items:center;display:flex}.br-pagination .pagination-per-page .br-input label,.br-pagination .pagination-go-to-page .br-input label{font-weight:var(--font-weight-regular);margin-bottom:0;margin-right:var(--spacing-scale-base);padding-bottom:0}.br-pagination .pagination-per-page .br-input input,.br-pagination .pagination-go-to-page .br-input input{--input-size:var(--pagination-medium);padding-left:var(--spacing-scale-base);padding-right:calc(var(--spacing-scale-baseh) + 32px);text-align:right;width:var(--pagination-select-width)}.br-pagination .pagination-per-page .br-input input:not(:focus),.br-pagination .pagination-go-to-page .br-input input:not(:focus){border-color:rgba(0,0,0,0)}.br-pagination .pagination-per-page .br-list,.br-pagination .pagination-go-to-page .br-list{min-width:5em;right:0;width:auto}.br-pagination .pagination-arrows{align-items:center;display:flex}.br-pagination .br-select .br-input .br-button{bottom:auto;margin-top:0;position:absolute;right:var(--spacing-scale-half);top:auto;transform:none}.br-pagination .br-divider{border-right-width:var(--divider-size);border-top:0}.br-pagination.inverted,.br-pagination.dark-mode{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.br-pagination.inverted.inverted .br-input,.br-pagination.inverted.inverted .br-input label,.br-pagination.inverted.dark-mode .br-input,.br-pagination.inverted.dark-mode .br-input label,.br-pagination.dark-mode.inverted .br-input,.br-pagination.dark-mode.inverted .br-input label,.br-pagination.dark-mode.dark-mode .br-input,.br-pagination.dark-mode.dark-mode .br-input label{--color:var(--color-dark);--focus-color:var(--focus-color-dark)}.br-pagination.inverted .page.active,.br-pagination.dark-mode .page.active{--interactive-rgb:var(--active-rgb);background-color:var(--background-light);color:var(--active)}.br-pagination .input-group .input-icon{display:none}.br-divider,hr{--divider-size:var(--surface-width-sm);border-color:var(--border-color);border-style:solid;border-width:0;border-top-width:var(--divider-size);display:block}.br-divider.content,hr.content{align-items:center;border:0;display:flex;justify-content:center}.br-divider.content::after,.br-divider.content::before,hr.content::after,hr.content::before{border-color:var(--border-color);border-style:solid;border-width:0;border-top-width:var(--divider-size);content:"";flex:1}.br-divider.content::after,hr.content::after{margin-left:var(--spacing-scale-base)}.br-divider.content::before,hr.content::before{margin-right:var(--spacing-scale-base)}.br-divider.vertical,hr.vertical{align-self:stretch;border-right-width:var(--divider-size);border-top-width:0}.br-divider.vertical.content,hr.vertical.content{flex-direction:column}.br-divider.vertical.content::after,.br-divider.vertical.content::before,hr.vertical.content::after,hr.vertical.content::before{border-right-width:var(--divider-size);border-top-width:0;margin:0}.br-divider.inverted,.br-divider.dark-mode,hr.inverted,hr.dark-mode{--border-color:var(--pure-0)}.br-divider.dashed,hr.dashed{border-style:dashed}.br-divider.sm,hr.sm{--divider-size:var(--surface-width-sm)}hr{--divider-padding:var(--spacing-scale-2x);margin:var(--divider-padding) 0}:host{display:block}:host .pagination-ellipsis br-list{max-height:none;overflow:visible}:host .pagination-ellipsis br-list.has-scroll{max-height:220px;overflow-y:auto}:host .pagination-ellipsis br-list.has-scroll::-webkit-scrollbar{height:var(--spacing-scale-base);width:var(--spacing-scale-base)}:host .pagination-ellipsis br-list.has-scroll::-webkit-scrollbar-track{background:var(--gray-10)}:host .pagination-ellipsis br-list.has-scroll::-webkit-scrollbar-thumb{background:var(--gray-30)}:host .pagination-ellipsis br-list.has-scroll:hover::-webkit-scrollbar-thumb{background:var(--gray-40)}:host .pagination-ellipsis .pagination-ellipsis-virtual-spacer{display:block;width:100%}:host .br-pagination button.page:not(.active){background-color:rgba(0,0,0,0)}:host([variant=contextual]) .br-pagination{justify-content:space-between}.pagination-leading,.pagination-trailing{display:flex;align-items:center;min-width:0}.pagination-leading{flex:0 1 auto}.pagination-trailing{flex:0 0 auto}:host([variant=contextual]) .pagination-divider{flex:0 0 auto;width:0;height:calc(var(--pagination-size) + var(--spacing-scale-base));margin-inline:var(--spacing-scale-base);border:0;border-right:var(--divider-size) solid var(--border-color)}:host([variant=contextual]) .pagination-per-page,:host([variant=contextual]) .pagination-go-to-page{flex:0 0 auto;width:max-content}:host([variant=contextual]) .pagination-per-page br-select,:host([variant=contextual]) .pagination-go-to-page br-select{width:max-content}.pagination-per-page br-select,.pagination-go-to-page br-select{--input-size:var(--pagination-size);--br-input-margin-bottom:0}.pagination-per-page br-select::part(input-container),.pagination-go-to-page br-select::part(input-container){transform:translateY(2px)}.pagination-per-page br-select::part(input-label),.pagination-go-to-page br-select::part(input-label){display:inline-flex;align-items:center;height:var(--pagination-medium);line-height:1;font-weight:var(--font-weight-regular);margin-bottom:0;margin-right:var(--spacing-scale-base);padding-bottom:0}.pagination-per-page br-select::part(input-clear),.pagination-go-to-page br-select::part(input-clear){display:none}.pagination-per-page br-select::part(input-field),.pagination-go-to-page br-select::part(input-field){--input-size:var(--pagination-medium);margin-top:0;padding-left:var(--spacing-scale-base);text-align:left}:host(:not([variant=contextual])) .br-pagination{justify-content:center}:host([variant=contextual]) .br-pagination ul{justify-content:center;width:100%}:host([color-mode=dark]) br-select{--color:var(--color-dark);--focus-color:var(--focus-color-dark)}:host([color-mode=dark]) br-select::part(label){color:var(--color-dark)}:host([color-mode=dark]) .br-pagination a.page:not(.active),:host([color-mode=dark]) .br-pagination button.page:not(.active){color:var(--color);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.br-pagination.dark-mode .br-select .br-item label,.br-pagination.dark-mode .page{color:var(--color-dark);background-color:rgba(0,0,0,0)}:host([color-mode=dark]) .br-pagination a.page:not(.active):hover,:host([color-mode=dark]) .br-pagination a.page:not(.active):focus,:host([color-mode=dark]) .br-pagination a.page:not(.active):focus-visible,:host([color-mode=dark]) .br-pagination button.page:not(.active):hover,:host([color-mode=dark]) .br-pagination button.page:not(.active):focus,:host([color-mode=dark]) .br-pagination button.page:not(.active):focus-visible{color:var(--interactive)}.br-pagination .page:focus-visible{outline:var(--focus) var(--focus-style) var(--focus-width);outline-offset:var(--focus-offset)}.pagination-ellipsis br-button::part(button){--button-size:var(--pagination-size)}.pagination-ellipsis br-button:focus-visible{outline:var(--focus) var(--focus-style) var(--focus-width);outline-offset:var(--focus-offset);border-radius:50%}.br-pagination>ul{position:relative}:host([loading]) .br-pagination>ul>li.pagination-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;visibility:visible}:host([loading]) .br-pagination>ul>li.pagination-loading .pagination-loading{display:flex;align-items:center;justify-content:center}:host([loading]) .br-pagination>ul>li:not(.pagination-loading):not(:first-child):not(:last-child){visibility:hidden}.pagination-information{position:relative}.pagination-information .pagination-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.visually-hidden{position:absolute !important;height:1px;width:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}:host([color-mode=dark]) br-select::part(radio-label){color:var(--color-dark)}`;
21
17
 
22
- const Dropdown = class {
18
+ const PAGINATION_COLOR_MODES = ['dark'];
19
+ const PAGINATION_VARIANTS = ['default', 'contextual'];
20
+ const Pagination = class {
23
21
  constructor(hostRef) {
24
22
  registerInstance(this, hostRef);
25
- this.brDidOpen = createEvent(this, "brDidOpen", 7);
26
- this.brDidClose = createEvent(this, "brDidClose", 7);
27
- this.brDropdownChange = createEvent(this, "brDropdownChange", 7);
28
- this.brDropdownOpenChange = createEvent(this, "brDropdownOpenChange", 6);
23
+ this.pageChange = createEvent(this, "pageChange", 7);
24
+ this.brPaginationPageChange = createEvent(this, "brPaginationPageChange", 6);
25
+ this.perPageChange = createEvent(this, "perPageChange", 7);
26
+ this.brPaginationPerPageChange = createEvent(this, "brPaginationPerPageChange", 6);
27
+ /**
28
+ * Estado interno para responsividade. Verdadeiro quando viewport < sm.
29
+ */
30
+ this.isSmall = false;
31
+ /** Materializa as opções completas somente após a primeira abertura do seletor. */
32
+ this.goToOptionsReady = false;
33
+ this.goToSearchTerm = '';
34
+ /**
35
+ * Controla a janela visível de cada dropdown de reticências.
36
+ */
37
+ this.ellipsisScrollOffsets = {};
38
+ /**
39
+ * Altura efetiva dos itens do dropdown de reticências.
40
+ * O valor fixo é usado somente até a primeira medição válida do DOM.
41
+ */
42
+ this.ellipsisItemHeight = Pagination.ELLIPSIS_ITEM_HEIGHT_FALLBACK;
29
43
  /**
30
44
  * Identificador único do componente.
31
45
  * Quando omitido, um valor é gerado automaticamente.
32
46
  *
33
- * > **Padrão:** valor único gerado por generateUniqueId().
47
+ * > **Padrão:** valor único gerado por `generateUniqueId()`.
34
48
  *
35
49
  * > **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `customId`.
36
50
  */
37
51
  this.customId = generateUniqueId();
52
+ /** Quantidade total de páginas (inteiro mínimo 1). Valores inválidos usam 1. */
53
+ this.total = 1;
54
+ /** Página atual (inteira e 1-indexada). Valores inválidos usam 1; valores fora do intervalo são ajustados. */
55
+ this.current = 1;
38
56
  /**
39
- * Indica se o dropdown está aberto ou fechado.
40
- * Esta propriedade é refletida no DOM e pode ser alterada externamente.
41
- * O valor padrão é falso (fechado).
57
+ * Rótulo acessível do botão de página anterior.
42
58
  */
43
- this.isOpen = false;
59
+ this.previousLabel = 'Voltar página';
44
60
  /**
45
- * Define o posicionamento do target (alvo) em relação ao trigger (acionador).
61
+ * Rótulo acessível do botão de próxima página.
46
62
  */
47
- this.placement = 'bottom-start';
63
+ this.nextLabel = 'Página seguinte';
48
64
  /**
49
- * Exibe uma seta ao lado do elemento acionador.
50
- * O valor padrão é falso para preservar a apresentação dos triggers existentes.
65
+ * Rótulo acessível do botão de reticências que abre a lista de páginas ocultas.
66
+ */
67
+ this.ellipsisLabel = 'Abrir ou fechar a lista de paginação';
68
+ /**
69
+ * Define a densidade visual do componente.
70
+ *
71
+ * - `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).
72
+ * - `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.
73
+ * - `large`: Baixa densidade (componente maior, mais espaçamento e altura).
74
+ *
75
+ * > **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `density`.
76
+ * Valores inválidos usam `medium`.
51
77
  */
52
- this.showArrow = false;
78
+ this.density = 'medium';
53
79
  /**
54
- * Define o posicionamento da seta ('left' ou 'right') em relação ao elemento acionador.
55
- * O valor padrão é 'right'.
80
+ * Variante de renderização do componente. Valores inválidos usam `default`.
81
+ * - `default`: paginação numérica (padrão)
82
+ * - `contextual`: paginação contextual com seletores e informação de itens
56
83
  */
57
- this.arrowPosition = 'right';
84
+ this.variant = 'default';
58
85
  /**
59
- * Define se o dropdown deve permanecer aberto quando outro dropdown é aberto.
60
- * Quando definido como false (padrão), o dropdown será fechado automaticamente quando outro dropdown for aberto.
61
- * Quando definido como true, o dropdown permanecerá aberto mesmo quando outro dropdown for aberto.
86
+ * Mantém `current` e `perPage` sob controle da aplicação.
87
+ *
88
+ * Quando ativo, interações apenas emitem a intenção de mudança. A aplicação
89
+ * deve atualizar a propriedade correspondente após concluir seu processamento.
90
+ *
91
+ * @default false
62
92
  */
63
- this.preventAutoDismiss = false;
93
+ this.controlled = false;
94
+ /** Indica que a página solicitada ainda está sendo carregada pelo consumidor.
95
+ * @default false
96
+ */
97
+ this.loading = false;
98
+ /** Itens por página (inteiro positivo, aplicável na variante contextual). Valores inválidos usam 10. */
99
+ this.perPage = 10;
64
100
  /**
65
- * Faz o painel acompanhar a largura do acionador enquanto estiver aberto.
66
- * O valor padrão `false` preserva a largura determinada pelo conteúdo.
101
+ * Opções disponíveis de itens por página na variante `contextual`.
102
+ * Passe o array por property binding; atributos HTML não representam arrays.
103
+ *
104
+ * @example
105
+ * ```js
106
+ * const pagination = document.querySelector('br-pagination');
107
+ * pagination.perPageOptions = [10, 25, 50, 100];
108
+ * ```
67
109
  */
68
- this.matchTriggerWidth = false;
110
+ this.perPageOptions = [10, 20, 30];
69
111
  /**
70
- * Define o z-index do elemento target (alvo) do dropdown.
71
- * Permite customizar a ordem de sobreposição do painel dropdown em relação aos demais elementos da página.
72
- * O valor padrão utiliza a variável CSS do design system: var(--z-index-layer-1).
112
+ * Rótulo do seletor de itens por página (variante contextual).
73
113
  */
74
- this.targetZIndex = 'var(--z-index-layer-1)';
114
+ this.perPageLabel = 'Exibir';
75
115
  /**
76
- * Desabilita a interação com o componente.
77
- *
78
- * > **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `disabled`.
116
+ * Rótulo do seletor "ir para página" (variante contextual).
79
117
  */
80
- this.disabled = false;
118
+ this.goToPageLabel = 'Página';
81
119
  /**
82
- * Método chamado sempre que a propriedade `isOpen` muda.
83
- * Emite um evento com o novo estado do dropdown.
120
+ * Sufixo textual para a informação de quantidade de itens (variante contextual).
84
121
  */
85
- this.pendingOpenInit = false;
86
- this.clickListenerAttached = false;
87
- this.semanticTriggerElement = null;
88
- this.targetElement = null;
89
- this.dropdownItems = [];
90
- this.dropdownLinks = [];
91
- this.focusableElement = null;
92
- this.triggerKeydownHandler = (event) => {
93
- if (this.disabled)
122
+ this.itemsText = 'itens';
123
+ this.ellipsisScrollFrame = null;
124
+ this.pendingEllipsisScrollOffsets = {};
125
+ this.pendingEllipsisFocus = null;
126
+ this.goToOptionsCache = null;
127
+ this.pendingGoToResetFrame = null;
128
+ this.goTo = (page) => {
129
+ if (this.loading)
94
130
  return;
95
- if (event.key === 'Enter' || event.key === ' ') {
96
- event.preventDefault();
97
- this.handleTriggerBehavior(event);
98
- }
99
- else if (event.key === 'Escape') {
100
- event.preventDefault();
101
- this.hide();
102
- this.focusOnTriggerElement();
131
+ const next = this.clampPage(page);
132
+ if (next !== this.effectiveCurrent) {
133
+ if (!this.controlled) {
134
+ this.current = next;
135
+ if (this.currentPage !== undefined)
136
+ this.currentPage = next;
137
+ }
138
+ this.pageChange.emit({ page: next });
139
+ this.brPaginationPageChange.emit({ page: next });
103
140
  }
104
- else if (event.key === 'ArrowDown' && this.isOpen) {
105
- event.preventDefault();
106
- this.initializeDropdownItems();
107
- const [firstFocusable] = this.getTabCycle();
108
- if (firstFocusable)
109
- this.focusOnElement(firstFocusable);
141
+ // Gerenciar foco após mudanças iniciadas pelo usuário
142
+ this.queueFocusAfterNavigation();
143
+ };
144
+ this.handlePrevClick = (event) => {
145
+ event.preventDefault();
146
+ if (this.effectiveCurrent > 1) {
147
+ this.goTo(this.effectiveCurrent - 1);
110
148
  }
111
149
  };
112
- this.handleTriggerSlotChange = () => {
113
- this.syncTriggerAccessibility();
114
- this.syncTriggerAccessibilityAfterHydration();
150
+ this.handleNextClick = (event) => {
151
+ event.preventDefault();
152
+ const maxPages = this.effectiveVariant === 'contextual' ? this.getTotalPages() : this.getDefaultTotalPages();
153
+ if (this.effectiveCurrent < maxPages) {
154
+ this.goTo(this.effectiveCurrent + 1);
155
+ }
115
156
  };
116
- this.targetKeydownHandler = (event) => {
117
- if (event.key === 'Escape') {
157
+ this.handlePageClickFactory = (page) => {
158
+ return (event) => {
118
159
  event.preventDefault();
119
- this.hide();
120
- this.focusOnTriggerElement();
121
- }
160
+ if (this.loading)
161
+ return;
162
+ this.lastInteraction = 'number';
163
+ this.goTo(page);
164
+ };
122
165
  };
123
- /**
124
- * Alterna o estado do dropdown entre aberto e fechado.
125
- */
126
- this.toggle = (event) => {
127
- if (this.disabled)
128
- return;
129
- event.stopPropagation();
130
- this.isOpen = !this.isOpen;
166
+ this.handleEllipsisItemClickFactory = (page) => {
167
+ return () => {
168
+ if (this.loading)
169
+ return;
170
+ this.lastInteraction = 'ellipsis';
171
+ this.goTo(page);
172
+ };
131
173
  };
132
- /**
133
- * Handler para eventos de keydown nos itens não-link.
134
- * Setas, Home e End navegam entre estes itens; Tab percorre o ciclo único
135
- * (links e itens na ordem do documento).
136
- */
137
- this.handleItemKeydown = (event) => {
138
- const item = event.currentTarget;
139
- const key = event.key;
140
- const currentIndex = this.dropdownItems.indexOf(item);
141
- const lastIndex = this.dropdownItems.length - 1;
142
- switch (key) {
143
- case 'ArrowUp':
144
- event.preventDefault();
145
- if (currentIndex <= 0) {
146
- this.focusOnElement(this.dropdownItems[lastIndex]);
147
- }
148
- else {
149
- this.focusOnElement(this.dropdownItems[currentIndex - 1]);
150
- }
151
- break;
174
+ this.handlePageKeyDown = (ev) => {
175
+ const target = ev.target;
176
+ // Aceita tanto o botão de página quanto o botão de reticências
177
+ if (!(target?.matches('button.page[part="page"]') || target?.matches('.pagination-ellipsis br-button[slot="trigger"]'))) {
178
+ return;
179
+ }
180
+ const buttons = this.getVisiblePageButtons();
181
+ const idx = buttons.indexOf(target);
182
+ if (idx === -1)
183
+ return;
184
+ switch (ev.key) {
185
+ case 'ArrowRight':
152
186
  case 'ArrowDown':
153
- event.preventDefault();
154
- if (currentIndex >= lastIndex) {
155
- this.focusOnElement(this.dropdownItems[0]);
156
- }
157
- else {
158
- this.focusOnElement(this.dropdownItems[currentIndex + 1]);
159
- }
187
+ ev.preventDefault();
188
+ this.focusPageButtonByIndex(idx + 1);
189
+ break;
190
+ case 'ArrowLeft':
191
+ case 'ArrowUp':
192
+ ev.preventDefault();
193
+ this.focusPageButtonByIndex(idx - 1);
160
194
  break;
161
195
  case 'Home':
162
- event.preventDefault();
163
- this.focusOnElement(this.dropdownItems[0]);
196
+ ev.preventDefault();
197
+ this.focusPageButtonByIndex(0);
164
198
  break;
165
199
  case 'End':
166
- event.preventDefault();
167
- this.focusOnElement(this.dropdownItems[lastIndex]);
168
- break;
169
- case 'Enter':
170
- case ' ':
171
- event.preventDefault();
172
- item.click();
173
- this.hide();
174
- this.focusOnTriggerElement();
175
- break;
176
- case 'Tab':
177
- event.preventDefault();
178
- this.cycleTabFocus(item, event.shiftKey);
179
- break;
180
- case 'Escape':
181
- event.preventDefault();
182
- this.hide();
183
- this.focusOnTriggerElement();
200
+ ev.preventDefault();
201
+ this.focusPageButtonByIndex(buttons.length - 1);
184
202
  break;
185
203
  }
186
204
  };
187
- /**
188
- * Handler específico para links. Tab percorre o ciclo único (links e itens).
189
- */
190
- this.handleLinkKeydown = (event) => {
191
- const link = event.currentTarget;
192
- const key = event.key;
193
- switch (key) {
194
- case 'ArrowUp':
195
- case 'ArrowDown':
196
- case 'Home':
197
- case 'End':
198
- event.preventDefault();
199
- event.stopPropagation();
200
- break;
201
- case 'Tab':
202
- event.preventDefault();
203
- this.cycleTabFocus(link, event.shiftKey);
204
- break;
205
- case 'Enter':
206
- case ' ':
207
- if (key === ' ' && link.tagName.toLowerCase() === 'a') {
208
- event.preventDefault();
209
- }
210
- setTimeout(() => this.hide(), 100);
211
- break;
212
- case 'Escape':
205
+ this.handleEllipsisScrollFactory = (key, totalItems) => {
206
+ return (event) => {
207
+ const list = event.currentTarget;
208
+ if (list === null)
209
+ return;
210
+ this.pendingEllipsisScrollOffsets[key] = list.scrollTop;
211
+ if (this.ellipsisScrollFrame !== null)
212
+ return;
213
+ this.ellipsisScrollFrame = requestAnimationFrame(() => {
214
+ this.ellipsisScrollFrame = null;
215
+ const offsets = this.pendingEllipsisScrollOffsets;
216
+ this.pendingEllipsisScrollOffsets = {};
217
+ Object.entries(offsets).forEach(([offsetKey, scrollTop]) => {
218
+ this.setEllipsisScrollOffset(offsetKey, scrollTop, totalItems);
219
+ });
220
+ });
221
+ };
222
+ };
223
+ this.handleEllipsisItemKeyDownFactory = (key, totalItems) => {
224
+ return (event) => {
225
+ const item = event.currentTarget;
226
+ const pageIndex = Number(item?.getAttribute('data-page-index'));
227
+ if (item === null || !Number.isInteger(pageIndex))
228
+ return;
229
+ if (event.key === 'Escape') {
213
230
  event.preventDefault();
214
- this.hide();
215
- this.focusOnTriggerElement();
216
- break;
231
+ event.stopImmediatePropagation();
232
+ this.handleEllipsisEscape(item, key);
233
+ return;
234
+ }
235
+ this.handleEllipsisBoundaryNavigation(event, key, totalItems, pageIndex);
236
+ };
237
+ };
238
+ this.handlePerPageChange = (event) => {
239
+ if (this.loading)
240
+ return;
241
+ const value = Number(event.detail);
242
+ // Ignora se o valor não for um número finito ou não tiver mudado
243
+ if (!Number.isFinite(value) || value === this.effectivePerPage) {
244
+ return;
245
+ }
246
+ const nextPerPage = resolveIntegerPropValue(this.el, 'perPage', value, 1, Number.MAX_SAFE_INTEGER, 10);
247
+ if (!this.controlled) {
248
+ this.perPage = nextPerPage;
249
+ this.current = this.clampPage(this.current); // Ajusta a página atual
217
250
  }
251
+ const detail = { perPage: nextPerPage };
252
+ this.perPageChange.emit(detail);
253
+ this.brPaginationPerPageChange.emit(detail);
254
+ // Gerencia o foco após a interação
255
+ this.lastInteraction = 'perPage';
256
+ this.queueFocusAfterNavigation();
257
+ };
258
+ this.handleGoToPageChange = (event) => {
259
+ if (this.loading)
260
+ return;
261
+ const value = Number(event.detail);
262
+ if (this.pendingGoToPage !== undefined)
263
+ return;
264
+ // O fallback para this.current garante que não tentemos navegar para NaN.
265
+ const next = this.clampPage(Number.isFinite(value) ? value : this.effectiveCurrent);
266
+ if (next !== this.effectiveCurrent) {
267
+ this.lastInteraction = 'goTo';
268
+ this.pendingGoToPage = next;
269
+ if (this.pendingGoToResetFrame !== null)
270
+ cancelAnimationFrame(this.pendingGoToResetFrame);
271
+ this.pendingGoToResetFrame = requestAnimationFrame(() => {
272
+ this.pendingGoToResetFrame = null;
273
+ this.pendingGoToPage = undefined;
274
+ });
275
+ this.goTo(next);
276
+ }
277
+ };
278
+ this.handleGoToSelectOpened = () => {
279
+ if (this.goToOptionsReady)
280
+ return;
281
+ this.goToOptionsReady = true;
218
282
  };
219
283
  }
220
- get effectivePlacement() {
221
- return resolveAllowedPropValue(this.el, 'placement', this.placement, ['bottom-start', 'bottom-end', 'top-start', 'top-end', 'left', 'right', 'bottom', 'top'], 'bottom-start');
284
+ handleTotalChange() {
285
+ this.goToOptionsCache = null;
286
+ this.goToOptionsReady = false;
287
+ this.resetAllEllipsisScrollOffsets();
288
+ this.current = this.clampPage(this.current);
222
289
  }
223
- get effectiveArrowPosition() {
224
- return resolveAllowedPropValue(this.el, 'arrowPosition', this.arrowPosition, ['left', 'right'], 'right');
290
+ handleTotalPagesChange(newValue) {
291
+ this.goToOptionsCache = null;
292
+ this.goToOptionsReady = false;
293
+ if (newValue !== undefined && newValue !== this.total)
294
+ this.total = newValue;
225
295
  }
226
- isOpenChanged(newValue) {
227
- if (newValue) {
228
- // Esconde o alvo imediatamente, antes do primeiro ciclo de renderização.
229
- // O Floating UI calcula a posição de forma assíncrona; sem este estado
230
- // explícito o alvo pode aparecer por um frame na origem (sobre o trigger)
231
- // e então saltar para a posição final.
232
- this.hideTargetUntilPositioned();
233
- this.attachClickListener();
234
- this.attachOpenListeners();
235
- this.brDidOpen.emit({ id: this.customId });
236
- this.pendingOpenInit = true;
237
- }
238
- else {
239
- this.detachClickListener();
240
- this.detachOpenListeners();
241
- this.cleanupPositioning();
242
- this.brDidClose.emit({ id: this.customId });
243
- if (this.triggerElement !== null && this.triggerElement !== undefined) {
244
- this.focusOnTriggerElement();
245
- }
296
+ handleCurrentChange(newValue) {
297
+ this.resetAllEllipsisScrollOffsets();
298
+ const clamped = this.clampPage(newValue);
299
+ if (clamped !== newValue) {
300
+ this.current = clamped;
246
301
  }
247
- this.brDropdownChange.emit({ isOpen: newValue });
248
- this.brDropdownOpenChange.emit({ open: newValue });
302
+ if (this.currentPage !== undefined && this.currentPage !== clamped)
303
+ this.currentPage = clamped;
249
304
  }
250
- /**
251
- * Aplica o novo valor de z-index ao elemento target.
252
- */
253
- targetZIndexChanged() {
254
- this.updateTargetZIndex();
305
+ handleCurrentPageChange(newValue) {
306
+ if (newValue !== undefined && newValue !== this.current)
307
+ this.current = newValue;
255
308
  }
256
- /**
257
- * Evento emitido quando o dropdown é aberto.
258
- * Este evento é usado para implementar o auto-dismiss de outros dropdowns.
259
- *
260
- * @internal
261
- */
262
- placementChanged() {
263
- if (!this.isOpen)
309
+ handlePerPagePropChange(newValue) {
310
+ this.goToOptionsCache = null;
311
+ this.goToOptionsReady = false;
312
+ if (this.effectiveVariant !== 'contextual')
313
+ return;
314
+ const nextPerPage = this.effectivePerPage;
315
+ if (nextPerPage !== newValue) {
316
+ this.perPage = nextPerPage;
264
317
  return;
265
- this.cleanupPositioning();
266
- this.positionDropdown();
318
+ }
319
+ this.current = this.clampPage(this.current);
267
320
  }
268
- /** Recalcula a superfície aberta quando a política de largura muda. */
269
- matchTriggerWidthChanged() {
270
- if (!this.isOpen)
321
+ handleTotalItemsChange() {
322
+ this.goToOptionsCache = null;
323
+ this.goToOptionsReady = false;
324
+ if (this.effectiveVariant !== 'contextual')
271
325
  return;
272
- this.cleanupPositioning();
273
- this.positionDropdown();
326
+ this.current = this.clampPage(this.current);
274
327
  }
275
- /**
276
- * Fecha o dropdown se for desabilitado enquanto estiver aberto.
277
- */
278
- disabledChanged(newValue) {
279
- if (newValue && this.isOpen) {
280
- this.hide();
281
- }
328
+ handleDensityChange() {
329
+ this.ellipsisScrollOffsets = {};
330
+ this.pendingEllipsisFocus = null;
331
+ this.ellipsisItemHeight = this.computeItemHeightForDensity();
282
332
  }
283
333
  connectedCallback() {
284
- this.clickHandler = this.onClickOutside.bind(this);
285
- this.dropdownOpenHandler = this.onDropdownDidOpen.bind(this);
286
- if (this.isOpen)
287
- this.attachOpenListeners();
334
+ this.setupMediaQuery();
288
335
  }
289
336
  disconnectedCallback() {
290
- this.detachClickListener();
291
- this.detachOpenListeners();
292
- if (this.targetElement !== null && this.targetElement !== undefined) {
293
- this.targetElement.removeEventListener('keydown', this.targetKeydownHandler);
337
+ this.cleanupMediaQuery();
338
+ this.pendingEllipsisFocus = null;
339
+ if (this.ellipsisScrollFrame !== null) {
340
+ cancelAnimationFrame(this.ellipsisScrollFrame);
341
+ this.ellipsisScrollFrame = null;
294
342
  }
295
- this.cleanupPositioning();
296
- this.clearDropdownItemListeners();
297
- }
298
- componentDidLoad() {
299
- this.triggerElement = this.el.shadowRoot.querySelector('#trigger');
300
- this.targetElement = this.el.shadowRoot.querySelector('#target');
301
- this.syncTriggerAccessibility();
302
- this.syncTriggerAccessibilityAfterHydration();
303
- this.setBehavior();
304
- this.updateTargetZIndex();
305
- if (this.isOpen) {
306
- this.attachClickListener();
307
- this.positionDropdown();
308
- this.initializeDropdownItems();
343
+ if (this.pendingGoToResetFrame !== null) {
344
+ cancelAnimationFrame(this.pendingGoToResetFrame);
345
+ this.pendingGoToResetFrame = null;
309
346
  }
347
+ this.pendingGoToPage = undefined;
310
348
  }
311
- attachClickListener() {
312
- if (this.clickListenerAttached)
313
- return;
314
- document.addEventListener('click', this.clickHandler);
315
- this.clickListenerAttached = true;
316
- }
317
- detachClickListener() {
318
- if (!this.clickListenerAttached)
319
- return;
320
- document.removeEventListener('click', this.clickHandler);
321
- this.clickListenerAttached = false;
322
- }
323
- attachOpenListeners() {
324
- if (!this.isOpen)
325
- return;
326
- document.addEventListener('brDidOpen', this.dropdownOpenHandler);
327
- this.cleanupBlockingSurfaceDismissal ?? (this.cleanupBlockingSurfaceDismissal = listenForExternalBlockingSurface(this.el, () => void this.hide()));
349
+ componentWillLoad() {
350
+ if (this.totalPages !== undefined)
351
+ this.total = this.effectiveTotalPages ?? this.effectiveTotal;
352
+ if (this.currentPage !== undefined)
353
+ this.current = this.effectiveCurrentPage ?? this.effectiveCurrent;
354
+ this.current = this.clampPage(this.current);
328
355
  }
329
- detachOpenListeners() {
330
- document.removeEventListener('brDidOpen', this.dropdownOpenHandler);
331
- this.cleanupBlockingSurfaceDismissal?.();
332
- this.cleanupBlockingSurfaceDismissal = undefined;
356
+ componentDidLoad() {
357
+ this.ellipsisItemHeight = this.computeItemHeightForDensity();
333
358
  }
334
359
  componentDidRender() {
335
- this.syncTriggerAccessibility();
336
- if (this.isOpen && this.pendingOpenInit) {
337
- this.pendingOpenInit = false;
338
- this.positionDropdown();
339
- this.initializeDropdownItems();
340
- }
360
+ this.flushPendingEllipsisFocus();
341
361
  }
342
362
  /**
343
- * Esconde o dropdown.
344
- * Define a propriedade `isOpen` como falsa e retorna o novo estado.
345
- * Este método pode ser chamado externamente.
346
- * @deprecated Use `close`.
363
+ * Define programaticamente a página atual dentro do intervalo permitido.
364
+ * @param page Página desejada (1-indexada).
365
+ * Em `controlled`, emite a solicitação sem alterar `current`.
347
366
  */
348
- async hide() {
349
- this.isOpen = false;
350
- return { isOpen: this.isOpen };
351
- }
352
- /** Fecha o dropdown e mantém o formato de retorno legado. */
353
- async close() {
354
- return await this.hide();
367
+ async setPage(page) {
368
+ this.goTo(page);
355
369
  }
356
370
  /**
357
- * Abre o dropdown.
358
- * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.
359
- * Este método pode ser chamado externamente.
371
+ * Solicita navegação programática para uma página (1-indexada).
372
+ * Em `controlled`, aguarda a confirmação externa para alterar `current`.
360
373
  */
361
- async open() {
362
- this.isOpen = true;
363
- return { isOpen: this.isOpen };
374
+ async goToPage(page) {
375
+ this.goTo(page);
376
+ }
377
+ // Calcula a altura do item com base nos tokens de density do GovBR-DS.
378
+ // py-3 = spacing-scale-2x (medium), py-4 = spacing-scale-3x (large), base para small.
379
+ computeItemHeightForDensity() {
380
+ if (typeof window === 'undefined')
381
+ return Pagination.ELLIPSIS_ITEM_HEIGHT_FALLBACK;
382
+ const style = getComputedStyle(this.el);
383
+ const spacingBase = parseFloat(style.getPropertyValue('--spacing-scale-base'));
384
+ const fontSize = parseFloat(style.getPropertyValue('--font-size-scale-base'));
385
+ const lineHeight = parseFloat(style.getPropertyValue('--font-line-height-medium'));
386
+ if (!Number.isFinite(spacingBase) || !Number.isFinite(fontSize) || !Number.isFinite(lineHeight)) {
387
+ return Pagination.ELLIPSIS_ITEM_HEIGHT_FALLBACK;
388
+ }
389
+ const paddingY = this.effectiveDensity === 'large'
390
+ ? spacingBase * 3
391
+ : this.effectiveDensity === 'medium'
392
+ ? spacingBase * 2
393
+ : spacingBase;
394
+ return Math.ceil(fontSize * lineHeight + paddingY * 2);
395
+ }
396
+ setupMediaQuery() {
397
+ if (typeof window === 'undefined' || typeof window.matchMedia !== 'function')
398
+ return;
399
+ const query = '(max-width: 575.98px)';
400
+ this.cleanupMediaQuery();
401
+ try {
402
+ this.mqlSmall = window.matchMedia(query);
403
+ this.isSmall = this.mqlSmall.matches;
404
+ this.mqlSmallHandler = (event) => {
405
+ this.isSmall = event.matches;
406
+ };
407
+ const legacyMediaQueryList = this.mqlSmall;
408
+ if (typeof this.mqlSmall.addEventListener === 'function') {
409
+ this.mqlSmall.addEventListener('change', this.mqlSmallHandler);
410
+ }
411
+ else if (typeof legacyMediaQueryList.addListener === 'function') {
412
+ legacyMediaQueryList.addListener(this.mqlSmallHandler);
413
+ }
414
+ }
415
+ catch {
416
+ console.warn(`Media Query "${query}" is not supported in this browser.`);
417
+ this.mqlSmall = undefined;
418
+ this.mqlSmallHandler = undefined;
419
+ this.isSmall = false;
420
+ }
364
421
  }
365
- /**
366
- * Define o foco no elemento interno do componente.
367
- * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
368
- */
369
- async setFocus() {
370
- if (this.focusableElement !== null && this.focusableElement !== undefined) {
371
- this.focusableElement.focus();
422
+ cleanupMediaQuery() {
423
+ if (this.mqlSmall === undefined || this.mqlSmallHandler === undefined) {
424
+ this.mqlSmall = undefined;
425
+ this.mqlSmallHandler = undefined;
426
+ return;
427
+ }
428
+ if (typeof this.mqlSmall.removeEventListener === 'function') {
429
+ this.mqlSmall.removeEventListener('change', this.mqlSmallHandler);
372
430
  }
373
431
  else {
374
- this.focusOnTriggerElement();
432
+ const legacyMediaQueryList = this.mqlSmall;
433
+ if (typeof legacyMediaQueryList.removeListener === 'function') {
434
+ legacyMediaQueryList.removeListener(this.mqlSmallHandler);
435
+ }
375
436
  }
437
+ this.mqlSmall = undefined;
438
+ this.mqlSmallHandler = undefined;
376
439
  }
377
- /**
378
- * Limpa o posicionamento do Floating UI
379
- */
380
- cleanupPositioning() {
381
- this.floatingManager?.stop();
382
- this.hideTargetUntilPositioned();
440
+ getCssClassMap() {
441
+ const density = this.effectiveDensity;
442
+ return {
443
+ 'br-pagination': true,
444
+ small: density === 'small',
445
+ large: density === 'large',
446
+ medium: density === 'medium',
447
+ 'dark-mode': this.effectiveColorMode === 'dark',
448
+ };
383
449
  }
384
- hideTargetUntilPositioned() {
385
- if (!this.targetElement)
386
- return;
387
- this.targetElement.removeAttribute('data-positioned');
388
- this.targetElement.style.visibility = 'hidden';
389
- this.targetElement.style.pointerEvents = 'none';
450
+ get effectiveDensity() {
451
+ return resolveDensity(this.el, this.density);
390
452
  }
391
- revealTargetAfterPositioning() {
392
- if (!this.targetElement)
393
- return;
394
- this.targetElement.setAttribute('data-positioned', 'true');
395
- this.targetElement.style.visibility = 'visible';
396
- this.targetElement.style.pointerEvents = '';
453
+ get effectiveColorMode() {
454
+ return resolveAllowedPropValue(this.el, 'colorMode', this.colorMode, PAGINATION_COLOR_MODES, undefined, {
455
+ allowUndefined: true,
456
+ });
397
457
  }
398
- clearDropdownItemListeners() {
399
- this.dropdownItems.forEach((item) => {
400
- item.removeEventListener('keydown', this.handleItemKeydown);
458
+ get effectiveVariant() {
459
+ return resolveAllowedPropValue(this.el, 'variant', this.variant, PAGINATION_VARIANTS, 'default');
460
+ }
461
+ get effectiveTotal() {
462
+ return resolveIntegerPropValue(this.el, 'total', this.total, 1, Number.MAX_SAFE_INTEGER, 1);
463
+ }
464
+ get effectiveTotalPages() {
465
+ return resolveIntegerPropValue(this.el, 'totalPages', this.totalPages, 1, Number.MAX_SAFE_INTEGER, 1, {
466
+ allowUndefined: true,
401
467
  });
402
- this.dropdownLinks.forEach((link) => {
403
- link.removeEventListener('keydown', this.handleLinkKeydown);
468
+ }
469
+ get effectiveCurrentPage() {
470
+ return resolveIntegerPropValue(this.el, 'currentPage', this.currentPage, 1, Number.MAX_SAFE_INTEGER, 1, {
471
+ allowUndefined: true,
404
472
  });
405
- this.dropdownItems = [];
406
- this.dropdownLinks = [];
407
473
  }
408
- /**
409
- * Foca em um elemento específico com suporte a componentes personalizados
410
- * @param targetElement Elemento a receber o foco
411
- */
412
- /**
413
- * Links e demais itens focáveis do target na ordem do documento. O Tab percorre
414
- * esta sequência única para que listas mistas (links e botões) sejam alcançáveis.
415
- */
416
- getTabCycle() {
417
- return [...new Set([...this.dropdownLinks, ...this.dropdownItems])].sort((a, b) => a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1);
418
- }
419
- /** Move o foco para o próximo (ou anterior, com Shift) elemento do ciclo de Tab. */
420
- cycleTabFocus(current, backwards) {
421
- const cycle = this.getTabCycle();
422
- const index = cycle.indexOf(current);
423
- if (index === -1 || cycle.length === 0)
424
- return;
425
- const nextIndex = backwards ? (index - 1 + cycle.length) % cycle.length : (index + 1) % cycle.length;
426
- this.focusOnElement(cycle[nextIndex]);
427
- }
428
- focusOnElement(targetElement, scrollIntoView = true) {
429
- if (targetElement && targetElement !== this.el) {
430
- if ('setFocus' in targetElement) {
431
- targetElement.setFocus();
432
- }
433
- else {
434
- targetElement.focus({ preventScroll: true });
435
- }
436
- if (scrollIntoView) {
437
- targetElement.scrollIntoView({ behavior: getScrollBehavior(), block: 'nearest', inline: 'nearest' });
438
- }
439
- }
474
+ get effectiveTotalItems() {
475
+ return (resolveIntegerPropValue(this.el, 'totalItems', this.totalItems, 0, Number.MAX_SAFE_INTEGER, 0, {
476
+ allowUndefined: true,
477
+ }) ?? 0);
440
478
  }
441
- /**
442
- * Foca no elemento interativo dentro do slot trigger
443
- * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele
444
- */
445
- focusOnTriggerElement() {
446
- const triggerSlot = this.el.shadowRoot.querySelector('slot[name="trigger"]');
447
- if (triggerSlot !== null) {
448
- const slotElements = triggerSlot.assignedElements();
449
- if (slotElements.length > 0) {
450
- const firstElement = slotElements[0];
451
- if ('setFocus' in firstElement) {
452
- firstElement.setFocus();
453
- }
454
- else {
455
- firstElement.focus();
456
- }
457
- firstElement.scrollIntoView({ behavior: getScrollBehavior(), block: 'nearest', inline: 'nearest' });
458
- }
459
- else {
460
- this.focusTrigger();
461
- }
462
- }
463
- else {
464
- this.focusTrigger();
479
+ get effectivePerPage() {
480
+ return resolveIntegerPropValue(this.el, 'perPage', this.perPage, 1, Number.MAX_SAFE_INTEGER, 10);
481
+ }
482
+ get effectivePerPageOptions() {
483
+ const options = Array.isArray(this.perPageOptions)
484
+ ? this.perPageOptions.map((option) => Number(option)).filter((option) => Number.isInteger(option) && option >= 1)
485
+ : [];
486
+ const uniqueOptions = [...new Set(options)];
487
+ if (!Array.isArray(this.perPageOptions) ||
488
+ uniqueOptions.length === 0 ||
489
+ uniqueOptions.length !== this.perPageOptions.length) {
490
+ reportInvalidPropValue(this.el, 'perPageOptions', this.perPageOptions, 'Informe uma lista com inteiros positivos, sem valores inválidos ou duplicados.', 'Aplicando fallback [10, 20, 30] quando nenhuma opção válida for informada e ignorando entradas inválidas.');
465
491
  }
492
+ return uniqueOptions.length > 0 ? uniqueOptions : [10, 20, 30];
466
493
  }
467
- /**
468
- * Auxiliar para focar no elemento trigger
469
- */
470
- focusTrigger() {
471
- if (typeof this.triggerElement !== 'undefined') {
472
- this.triggerElement.focus();
473
- this.triggerElement.scrollIntoView({ behavior: getScrollBehavior(), block: 'nearest', inline: 'nearest' });
474
- }
475
- }
476
- syncTriggerAccessibility() {
477
- const assignedTrigger = this.el.querySelector('[slot="trigger"]');
478
- if (!assignedTrigger)
479
- return;
480
- if (assignedTrigger.localName === 'br-button') {
481
- const buttonTrigger = assignedTrigger;
482
- buttonTrigger.ariaControls = 'target';
483
- buttonTrigger.ariaExpanded = String(this.isOpen);
484
- buttonTrigger.ariaHaspopup = 'true';
485
- if (this.ariaLabel)
486
- buttonTrigger.ariaLabel = this.ariaLabel;
487
- return;
488
- }
489
- const interactiveSelector = 'button, a[href], input, select, textarea, summary, [role="button"]';
490
- const semanticTrigger = assignedTrigger.shadowRoot?.querySelector(interactiveSelector) ?? assignedTrigger;
491
- if (this.semanticTriggerElement && this.semanticTriggerElement !== semanticTrigger) {
492
- this.semanticTriggerElement.removeAttribute('aria-controls');
493
- this.semanticTriggerElement.removeAttribute('aria-expanded');
494
- this.semanticTriggerElement.removeAttribute('aria-haspopup');
495
- this.semanticTriggerElement.removeAttribute('aria-disabled');
496
- }
497
- this.semanticTriggerElement = semanticTrigger;
498
- if (!semanticTrigger.matches(interactiveSelector)) {
499
- semanticTrigger.setAttribute('role', 'button');
500
- semanticTrigger.tabIndex = this.disabled ? -1 : 0;
501
- }
502
- semanticTrigger.setAttribute('aria-controls', 'target');
503
- semanticTrigger.setAttribute('aria-expanded', String(this.isOpen));
504
- semanticTrigger.setAttribute('aria-haspopup', 'true');
505
- if (this.ariaLabel)
506
- semanticTrigger.setAttribute('aria-label', this.ariaLabel);
507
- if (this.disabled)
508
- semanticTrigger.setAttribute('aria-disabled', 'true');
509
- else
510
- semanticTrigger.removeAttribute('aria-disabled');
494
+ getDefaultTotalPages() {
495
+ return this.effectiveTotalPages ?? this.effectiveTotal;
511
496
  }
512
- syncTriggerAccessibilityAfterHydration() {
513
- const assignedTrigger = this.el.querySelector('[slot="trigger"]');
514
- if (!assignedTrigger?.localName.includes('-'))
515
- return;
516
- void customElements.whenDefined(assignedTrigger.localName).then(() => this.syncTriggerAccessibility());
497
+ get effectiveCurrent() {
498
+ return this.clampPage(resolveIntegerPropValue(this.el, 'current', this.current, 1, Number.MAX_SAFE_INTEGER, 1));
517
499
  }
518
- getCssClassMap() {
519
- return {
520
- 'br-dropdown': true,
521
- disabled: this.disabled,
522
- };
500
+ clampPage(value) {
501
+ const total = this.effectiveVariant === 'contextual' ? this.getTotalPages() : this.getDefaultTotalPages();
502
+ const clampedValue = Math.max(1, resolveIntegerPropValue(this.el, 'current', value, 1, Number.MAX_SAFE_INTEGER, 1));
503
+ return Math.min(clampedValue, total);
523
504
  }
524
- /**
525
- * Lida com o comportamento no trigger
526
- */
527
- handleTriggerBehavior(event) {
528
- if (this.disabled)
529
- return;
530
- event.preventDefault();
531
- this.toggle(event);
532
- if (this.isOpen) {
533
- setTimeout(() => {
534
- this.initializeDropdownItems();
535
- }, 0);
536
- }
505
+ getVisiblePageButtons() {
506
+ const root = this.el.shadowRoot;
507
+ if (root === null)
508
+ return [];
509
+ return Array.from(root.querySelectorAll('button.page[part="page"], .pagination-ellipsis br-button[slot="trigger"]'));
537
510
  }
538
- /**
539
- * Inicializa os itens do dropdown com comportamentos de navegação com teclado,
540
- * separando links e demais itens (setas navegam entre itens; Tab percorre ambos na ordem do documento)
541
- */
542
- initializeDropdownItems() {
543
- if (this.targetElement === null)
544
- return;
545
- this.clearDropdownItemListeners();
546
- this.targetElement.setAttribute('tabindex', '-1');
547
- this.targetElement.focus({ preventScroll: true });
548
- const targetSlot = this.el.shadowRoot.querySelector('slot[name="target"]');
549
- if (isNil(targetSlot))
550
- return;
551
- const assignedElements = targetSlot.assignedElements();
552
- if (assignedElements.length === 0)
553
- return;
554
- const nonLinkSelector = 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex="-1"]):not(a[href])';
555
- const linkSelector = 'a[href], br-item[href]';
556
- assignedElements.forEach((element) => {
557
- if (element instanceof HTMLElement) {
558
- if (element.matches(linkSelector)) {
559
- this.dropdownLinks.push(element);
560
- }
561
- else if (element.matches(nonLinkSelector)) {
562
- this.dropdownItems.push(element);
511
+ focusPageButtonByIndex(index) {
512
+ const buttons = this.getVisiblePageButtons();
513
+ if (buttons.length === 0)
514
+ return;
515
+ const clamped = Math.max(0, Math.min(index, buttons.length - 1));
516
+ const btn = buttons[clamped];
517
+ // Garantir roving tabindex
518
+ buttons.forEach((b, i) => {
519
+ b.tabIndex = i === clamped ? 0 : -1;
520
+ });
521
+ btn.focus();
522
+ }
523
+ queueFocusAfterNavigation() {
524
+ // Diferir para após renderização (fallback em ambientes sem RAF)
525
+ const defer = typeof requestAnimationFrame === 'function'
526
+ ? requestAnimationFrame
527
+ : (cb) => setTimeout(() => cb(0), 0);
528
+ defer(() => {
529
+ if (this.effectiveVariant === 'contextual') {
530
+ this.lastInteraction = undefined;
531
+ return;
532
+ }
533
+ // Variant default: focar no botão da página atual ao vir de reticências
534
+ if (this.lastInteraction === 'ellipsis' || this.lastInteraction === 'number') {
535
+ const buttons = this.getVisiblePageButtons();
536
+ const currentBtn = buttons.find((b) => b.getAttribute('aria-current') === 'page');
537
+ if (currentBtn !== null && currentBtn !== undefined) {
538
+ // Roving tabindex: somente o atual recebe 0
539
+ buttons.forEach((b) => {
540
+ b.tabIndex = b === currentBtn ? 0 : -1;
541
+ });
542
+ currentBtn.focus();
563
543
  }
564
544
  }
565
- const linkChildren = Array.from(element.querySelectorAll(linkSelector)).filter((child) => findComposedOwner(child, 'br-dropdown') === this.el);
566
- this.dropdownLinks = this.dropdownLinks.concat(linkChildren);
567
- const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)).filter((child) => findComposedOwner(child, 'br-dropdown') === this.el);
568
- this.dropdownItems = this.dropdownItems.concat(nonLinkChildren);
569
- });
570
- this.dropdownItems.forEach((item) => {
571
- item.addEventListener('keydown', this.handleItemKeydown);
545
+ this.lastInteraction = undefined;
572
546
  });
573
- this.dropdownLinks.forEach((link) => {
574
- link.addEventListener('keydown', this.handleLinkKeydown);
575
- });
576
- const [firstFocusable] = this.getTabCycle();
577
- if (firstFocusable) {
578
- this.focusOnElement(firstFocusable, false);
579
- this.focusableElement = firstFocusable;
547
+ }
548
+ getComputedNavAriaLabel() {
549
+ // Respeita o valor fornecido externamente
550
+ if (this.ariaLabel && String(this.ariaLabel).trim().length > 0)
551
+ return this.ariaLabel;
552
+ const totalPages = this.effectiveVariant === 'contextual' ? this.getTotalPages() : this.getDefaultTotalPages();
553
+ return `Paginação: página ${this.effectiveCurrent} de ${totalPages}`;
554
+ }
555
+ renderPageButton(page) {
556
+ return (h("li", { key: page }, h("button", { part: "page", class: { page: true, active: page === this.effectiveCurrent }, "aria-label": `Página ${page}`, "aria-current": page === this.effectiveCurrent ? 'page' : null, type: "button", tabIndex: page === this.effectiveCurrent ? 0 : -1, onClick: this.handlePageClickFactory(page), onKeyDown: this.handlePageKeyDown, disabled: this.loading }, page)));
557
+ }
558
+ getEllipsisRangeKey(position, from, to) {
559
+ return `${position}:${from}:${to}`;
560
+ }
561
+ resetAllEllipsisScrollOffsets() {
562
+ this.pendingEllipsisFocus = null;
563
+ if (Object.keys(this.ellipsisScrollOffsets).length === 0)
564
+ return;
565
+ this.ellipsisScrollOffsets = {};
566
+ }
567
+ resetEllipsisScrollOffset(key) {
568
+ if (this.pendingEllipsisFocus?.key === key) {
569
+ this.pendingEllipsisFocus = null;
570
+ }
571
+ if (!(key in this.ellipsisScrollOffsets))
572
+ return;
573
+ const nextOffsets = { ...this.ellipsisScrollOffsets };
574
+ delete nextOffsets[key];
575
+ this.ellipsisScrollOffsets = nextOffsets;
576
+ }
577
+ getEllipsisMetrics(key, totalItems) {
578
+ const itemHeight = this.ellipsisItemHeight;
579
+ const safeTotalItems = Math.max(0, totalItems);
580
+ const shouldVirtualize = safeTotalItems > Pagination.ELLIPSIS_VISIBLE_ITEMS;
581
+ const visibleItems = Math.min(safeTotalItems, Pagination.ELLIPSIS_VISIBLE_ITEMS);
582
+ const viewportHeight = visibleItems * itemHeight;
583
+ const maxScrollTop = Math.max(0, safeTotalItems * itemHeight - viewportHeight);
584
+ const storedScrollTop = shouldVirtualize ? (this.ellipsisScrollOffsets[key] ?? 0) : 0;
585
+ const scrollTop = Math.min(Math.max(0, storedScrollTop), maxScrollTop);
586
+ if (safeTotalItems === 0) {
587
+ return {
588
+ shouldVirtualize,
589
+ visibleItems,
590
+ scrollTop: 0,
591
+ renderedStartIndex: 0,
592
+ renderedEndIndex: -1,
593
+ viewportHeight,
594
+ };
580
595
  }
596
+ const firstVisibleIndex = Math.min(safeTotalItems - 1, Math.floor(scrollTop / itemHeight));
597
+ const lastVisibleIndex = shouldVirtualize
598
+ ? Math.min(safeTotalItems - 1, Math.ceil((scrollTop + viewportHeight) / itemHeight) - 1)
599
+ : safeTotalItems - 1;
600
+ const renderedStartIndex = shouldVirtualize
601
+ ? Math.max(0, Math.min(safeTotalItems - 1, firstVisibleIndex - Pagination.ELLIPSIS_OVERSCAN))
602
+ : 0;
603
+ const renderedEndIndex = shouldVirtualize
604
+ ? Math.max(renderedStartIndex, Math.min(safeTotalItems - 1, lastVisibleIndex + Pagination.ELLIPSIS_OVERSCAN))
605
+ : safeTotalItems - 1;
606
+ return {
607
+ shouldVirtualize,
608
+ visibleItems,
609
+ scrollTop,
610
+ renderedStartIndex,
611
+ renderedEndIndex,
612
+ viewportHeight,
613
+ };
581
614
  }
582
- /**
583
- * Método que lida com cliques fora do dropdown.
584
- *
585
- * @param {MouseEvent} event - O evento de clique que ocorreu.
586
- */
587
- onClickOutside(event) {
588
- if (!this.isOpen)
589
- return;
590
- const path = event.composedPath();
591
- if (this.triggerElement &&
592
- this.targetElement &&
593
- !path.includes(this.triggerElement) &&
594
- !path.includes(this.targetElement)) {
595
- this.hide();
615
+ setEllipsisScrollOffset(key, scrollTop, totalItems) {
616
+ const viewportHeight = Math.min(totalItems ?? 0, Pagination.ELLIPSIS_VISIBLE_ITEMS) * this.ellipsisItemHeight;
617
+ const maxScrollTop = totalItems === undefined
618
+ ? Number.POSITIVE_INFINITY
619
+ : Math.max(0, totalItems * this.ellipsisItemHeight - viewportHeight);
620
+ const nextScrollTop = Math.min(Math.max(0, scrollTop), maxScrollTop);
621
+ if ((this.ellipsisScrollOffsets[key] ?? 0) === nextScrollTop)
622
+ return;
623
+ this.ellipsisScrollOffsets = {
624
+ ...this.ellipsisScrollOffsets,
625
+ [key]: nextScrollTop,
626
+ };
627
+ }
628
+ getEllipsisListElement(key) {
629
+ return (this.el.shadowRoot?.querySelector(`.pagination-ellipsis[data-ellipsis-key="${key}"] br-list`) ?? null);
630
+ }
631
+ focusEllipsisItemNow(key, pageIndex) {
632
+ const item = this.el.shadowRoot?.querySelector(`.pagination-ellipsis[data-ellipsis-key="${key}"] br-item[data-page-index="${pageIndex}"]`);
633
+ if (item === null || item === undefined)
634
+ return false;
635
+ if ('setFocus' in item) {
636
+ void item.setFocus();
637
+ return true;
596
638
  }
639
+ item.focus();
640
+ return true;
597
641
  }
598
- /**
599
- * Método que lida com o evento brDidOpen de outros dropdowns
600
- * Fecha este dropdown se não for o emissor do evento e preventAutoDismiss=false
601
- */
602
- onDropdownDidOpen(event) {
603
- if (this.preventAutoDismiss) {
642
+ flushPendingEllipsisFocus() {
643
+ const pendingFocus = this.pendingEllipsisFocus;
644
+ if (pendingFocus === null)
645
+ return;
646
+ const list = this.getEllipsisListElement(pendingFocus.key);
647
+ if (list === null)
648
+ return;
649
+ list.scrollTop = pendingFocus.scrollTop;
650
+ if (!this.focusEllipsisItemNow(pendingFocus.key, pendingFocus.pageIndex)) {
604
651
  return;
605
652
  }
606
- const customEvent = event;
607
- const eventTarget = event.target;
608
- const isDropdownEvent = eventTarget?.tagName.toLowerCase() === 'br-dropdown';
609
- if (isDropdownEvent && this.isOpen && customEvent.detail.id !== this.customId) {
610
- this.hide();
653
+ this.pendingEllipsisFocus = null;
654
+ }
655
+ ensureEllipsisItemVisible(key, totalItems, pageIndex) {
656
+ const { scrollTop, viewportHeight } = this.getEllipsisMetrics(key, totalItems);
657
+ const itemHeight = this.ellipsisItemHeight;
658
+ const maxScrollTop = Math.max(0, totalItems * itemHeight - viewportHeight);
659
+ const itemTop = pageIndex * itemHeight;
660
+ const itemBottom = itemTop + itemHeight;
661
+ let nextScrollTop = scrollTop;
662
+ if (itemTop < scrollTop) {
663
+ nextScrollTop = itemTop;
664
+ }
665
+ else if (itemBottom > scrollTop + viewportHeight) {
666
+ nextScrollTop = itemBottom - viewportHeight;
667
+ }
668
+ nextScrollTop = Math.min(Math.max(0, nextScrollTop), maxScrollTop);
669
+ if (nextScrollTop !== scrollTop) {
670
+ this.pendingEllipsisFocus = {
671
+ key,
672
+ pageIndex,
673
+ scrollTop: nextScrollTop,
674
+ };
675
+ this.setEllipsisScrollOffset(key, nextScrollTop, totalItems);
676
+ return;
677
+ }
678
+ this.focusEllipsisItemNow(key, pageIndex);
679
+ }
680
+ getEllipsisBoundaryNavigationIndex(eventKey, pageIndex, totalItems, visibleItems, renderedStartIndex, renderedEndIndex) {
681
+ if (eventKey === 'Home')
682
+ return 0;
683
+ if (eventKey === 'End')
684
+ return totalItems - 1;
685
+ if (eventKey === 'PageDown')
686
+ return Math.min(totalItems - 1, pageIndex + visibleItems);
687
+ if (eventKey === 'PageUp')
688
+ return Math.max(0, pageIndex - visibleItems);
689
+ if (eventKey === 'ArrowDown') {
690
+ if (pageIndex === totalItems - 1)
691
+ return pageIndex;
692
+ if (pageIndex + 1 > renderedEndIndex)
693
+ return pageIndex + 1;
694
+ }
695
+ if (eventKey === 'ArrowUp') {
696
+ if (pageIndex === 0)
697
+ return pageIndex;
698
+ if (pageIndex - 1 < renderedStartIndex)
699
+ return pageIndex - 1;
611
700
  }
701
+ return null;
612
702
  }
613
- /**
614
- * Posiciona o dropdown usando Floating UI
615
- */
616
- positionDropdown() {
617
- if (this.triggerElement == null || this.targetElement == null)
618
- return;
619
- const targetElement = this.targetElement;
620
- this.hideTargetUntilPositioned();
621
- this.floatingManager?.stop();
622
- this.floatingManager = new FloatingUIManager({
623
- triggerElement: this.triggerElement,
624
- contentElement: targetElement,
625
- placement: this.effectivePlacement,
626
- offset: 4,
627
- matchReferenceWidth: this.matchTriggerWidth,
628
- onUpdate: () => {
629
- if (this.isOpen && this.targetElement === targetElement) {
630
- this.revealTargetAfterPositioning();
631
- }
632
- },
633
- });
634
- this.floatingManager.start();
703
+ handleEllipsisEscape(item, key) {
704
+ this.resetEllipsisScrollOffset(key);
705
+ const dropdown = item.closest('br-dropdown');
706
+ void dropdown?.hide();
635
707
  }
636
- /**
637
- * Configura os comportamentos de interação do dropdown
638
- */
639
- setBehavior() {
640
- if (this.triggerElement === null)
708
+ handleEllipsisBoundaryNavigation(event, key, totalItems, pageIndex) {
709
+ const { visibleItems, renderedStartIndex, renderedEndIndex } = this.getEllipsisMetrics(key, totalItems);
710
+ const nextIndex = this.getEllipsisBoundaryNavigationIndex(event.key, pageIndex, totalItems, visibleItems, renderedStartIndex, renderedEndIndex);
711
+ if (nextIndex === null)
641
712
  return;
642
- if (this.targetElement !== null) {
643
- this.targetElement.addEventListener('keydown', this.targetKeydownHandler);
644
- }
713
+ event.preventDefault();
714
+ event.stopImmediatePropagation();
715
+ if (nextIndex === pageIndex)
716
+ return;
717
+ this.ensureEllipsisItemVisible(key, totalItems, nextIndex);
718
+ }
719
+ renderEllipsis(from, to, position) {
720
+ if (to < from)
721
+ return null;
722
+ const totalItems = to - from + 1;
723
+ const key = this.getEllipsisRangeKey(position, from, to);
724
+ const { shouldVirtualize, renderedStartIndex, renderedEndIndex, viewportHeight } = this.getEllipsisMetrics(key, totalItems);
725
+ const items = [];
726
+ for (let pageIndex = renderedStartIndex; pageIndex <= renderedEndIndex; pageIndex++) {
727
+ const page = from + pageIndex;
728
+ items.push(h("br-item", { key: `ellipsis-item-${key}-${page}`, "data-page-index": pageIndex, "prop:density": this.effectiveDensity, isButton: true, role: "menuitem", "aria-posinset": pageIndex + 1, "aria-setsize": totalItems, onBrDidClick: this.handleEllipsisItemClickFactory(page), onKeyDown: this.handleEllipsisItemKeyDownFactory(key, totalItems), "aria-label": `Página ${page}` }, page));
729
+ }
730
+ const topSpacerHeight = renderedStartIndex * this.ellipsisItemHeight;
731
+ const bottomSpacerHeight = Math.max(0, totalItems - renderedEndIndex - 1) * this.ellipsisItemHeight;
732
+ return (h("li", { class: "pagination-ellipsis", part: "ellipsis", key: `ellipsis-${key}`, "data-ellipsis-key": key, "data-ellipsis-position": position }, h("br-dropdown", null, h("br-button", { part: "ellipsis", exportparts: "button: ellipsis-button", slot: "trigger", shape: "circle", density: this.effectiveDensity, type: "button", "prop:ariaLabel": this.ellipsisLabel, tabIndex: -1, disabled: this.loading, onClick: () => {
733
+ this.resetEllipsisScrollOffset(key);
734
+ }, onKeyDown: this.handlePageKeyDown }, h("br-icon", { "attr:iconName": "fa-solid:ellipsis-h", width: "16", height: "16", "aria-hidden": "true" }), h("span", { class: "visually-hidden" }, this.ellipsisLabel)), h("br-list", { class: { 'has-scroll': shouldVirtualize, 'is-virtualized': shouldVirtualize }, density: this.effectiveDensity, slot: "target", role: "menu", "aria-label": `Páginas ocultas de ${from} até ${to}`, "aria-orientation": "vertical", onScroll: shouldVirtualize ? this.handleEllipsisScrollFactory(key, totalItems) : undefined, style: shouldVirtualize ? { maxHeight: `${viewportHeight}px` } : undefined }, shouldVirtualize && topSpacerHeight > 0 ? (h("div", { class: "pagination-ellipsis-virtual-spacer", role: "presentation", "aria-hidden": "true", style: { height: `${topSpacerHeight}px` } })) : null, items, shouldVirtualize && bottomSpacerHeight > 0 ? (h("div", { class: "pagination-ellipsis-virtual-spacer", role: "presentation", "aria-hidden": "true", style: { height: `${bottomSpacerHeight}px` } })) : null))));
735
+ }
736
+ renderPagesSmall(total, current) {
737
+ const nodes = [];
738
+ if (total <= 3) {
739
+ for (let p = 1; p <= total; p++)
740
+ nodes.push(this.renderPageButton(p));
741
+ return nodes;
742
+ }
743
+ if (current <= 2) {
744
+ nodes.push(this.renderPageButton(1));
745
+ nodes.push(this.renderPageButton(2));
746
+ nodes.push(this.renderEllipsis(3, total - 1, 'start'));
747
+ nodes.push(this.renderPageButton(total));
748
+ return nodes;
749
+ }
750
+ if (current >= total - 1) {
751
+ nodes.push(this.renderPageButton(1));
752
+ nodes.push(this.renderEllipsis(2, total - 2, 'end'));
753
+ nodes.push(this.renderPageButton(total - 1));
754
+ nodes.push(this.renderPageButton(total));
755
+ return nodes;
756
+ }
757
+ nodes.push(this.renderPageButton(1));
758
+ nodes.push(this.renderEllipsis(2, current - 1, 'left'));
759
+ nodes.push(this.renderPageButton(current));
760
+ nodes.push(this.renderEllipsis(current + 1, total - 1, 'right'));
761
+ nodes.push(this.renderPageButton(total));
762
+ return nodes;
763
+ }
764
+ renderPagesStandard(total, current) {
765
+ const nodes = [];
766
+ if (total <= 7) {
767
+ for (let p = 1; p <= total; p++)
768
+ nodes.push(this.renderPageButton(p));
769
+ return nodes;
770
+ }
771
+ if (current <= 4) {
772
+ for (let p = 1; p <= 4; p++)
773
+ nodes.push(this.renderPageButton(p));
774
+ nodes.push(this.renderEllipsis(5, total - 1, 'start'));
775
+ nodes.push(this.renderPageButton(total));
776
+ return nodes;
777
+ }
778
+ if (current >= total - 3) {
779
+ nodes.push(this.renderPageButton(1));
780
+ nodes.push(this.renderEllipsis(2, total - 4, 'end'));
781
+ for (let p = total - 3; p <= total; p++)
782
+ nodes.push(this.renderPageButton(p));
783
+ return nodes;
784
+ }
785
+ nodes.push(this.renderPageButton(1));
786
+ nodes.push(this.renderEllipsis(2, current - 2, 'left'));
787
+ for (let p = current - 1; p <= current + 1; p++)
788
+ nodes.push(this.renderPageButton(p));
789
+ nodes.push(this.renderEllipsis(current + 2, total - 1, 'right'));
790
+ nodes.push(this.renderPageButton(total));
791
+ return nodes;
792
+ }
793
+ renderPages() {
794
+ const total = this.getDefaultTotalPages();
795
+ const current = this.effectiveCurrent;
796
+ return this.isSmall ? this.renderPagesSmall(total, current) : this.renderPagesStandard(total, current);
797
+ }
798
+ renderLoading() {
799
+ if (!this.loading)
800
+ return null;
801
+ return (h("span", { part: "loading", class: "pagination-loading", role: "status", "aria-live": "polite", "aria-label": "Carregando" }, h("slot", { name: "loading" }, h("br-loading", { size: "small", compact: true, label: "Carregando" }))));
802
+ }
803
+ getTotalPages() {
804
+ const items = this.effectiveTotalItems;
805
+ const perPage = this.effectivePerPage;
806
+ return Math.max(1, Math.ceil(items / perPage));
807
+ }
808
+ getRangeInfo() {
809
+ const total = this.effectiveTotalItems;
810
+ const perPage = this.effectivePerPage;
811
+ const current = this.effectiveCurrent;
812
+ if (total === 0)
813
+ return { start: 0, end: 0, total };
814
+ const start = (current - 1) * perPage + 1;
815
+ const end = Math.min(current * perPage, total);
816
+ return { start, end, total };
817
+ }
818
+ handleContextualSelectChange(event) {
819
+ const select = event
820
+ .composedPath()
821
+ .find((node) => node instanceof HTMLElement && node.tagName === 'BR-SELECT');
822
+ if (!(select instanceof HTMLElement) || select.tagName !== 'BR-SELECT')
823
+ return;
824
+ const container = select.parentElement;
825
+ if (container?.classList.contains('pagination-per-page'))
826
+ this.handlePerPageChange(event);
827
+ else if (container?.classList.contains('pagination-go-to-page'))
828
+ this.handleGoToPageChange(event);
829
+ }
830
+ renderPerPageDropdown() {
831
+ return (h("br-select", { part: "per-page", exportparts: "container: per-page-container, input: per-page-input, input-container: per-page-input-container, input-field: per-page-input-field, input-label: per-page-input-label, input-action: per-page-input-action, list: per-page-list", label: this.perPageLabel, isInline: true, inputWidth: "88px", borderless: true, density: this.effectiveDensity, disabled: this.loading, hideSearchIcon: true }, this.effectivePerPageOptions.map((perPageOption) => (h("br-select-option", { key: String(perPageOption), value: String(perPageOption), selected: perPageOption === this.effectivePerPage }, perPageOption)))));
832
+ }
833
+ renderPerPageSelect() {
834
+ return (h("div", { class: "pagination-per-page", part: "per-page" }, this.renderPerPageDropdown()));
835
+ }
836
+ renderGoToSelect() {
837
+ const totalPages = this.getTotalPages();
838
+ const largePageSet = totalPages > Pagination.LARGE_PAGE_THRESHOLD;
839
+ const goToInputWidth = `${Math.max(88, String(totalPages).length * 16 + 48)}px`;
840
+ return (h("div", { class: "pagination-go-to-page d-none d-sm-flex" }, h("br-select", { part: "go-to", exportparts: "container: go-to-container, input: go-to-input, input-container: go-to-input-container, input-field: go-to-input-field, input-label: go-to-input-label, input-action: go-to-input-action, list: go-to-list", label: this.goToPageLabel, options: largePageSet
841
+ ? this.getWindowedGoToOptions(totalPages, this.goToSearchTerm)
842
+ : this.goToOptionsReady
843
+ ? this.getGoToOptions(totalPages)
844
+ : this.getCurrentGoToOption(totalPages), onOpened: this.handleGoToSelectOpened, onClosed: () => (this.goToSearchTerm = ''), onBrSelectSearch: (event) => (this.goToSearchTerm = event.detail.query), value: String(this.effectiveCurrent), isInline: true, inputWidth: goToInputWidth, density: this.effectiveDensity, "visible-items": 7, filterable: true, searchMode: largePageSet ? 'remote' : 'local', borderless: true, disabled: this.loading, hideSearchIcon: true })));
845
+ }
846
+ getWindowedGoToOptions(totalPages, query) {
847
+ const parsed = Number.parseInt(query.trim(), 10);
848
+ const center = Number.isInteger(parsed) && parsed >= 1 && parsed <= totalPages ? parsed : this.effectiveCurrent;
849
+ const radius = query.trim() ? 10 : 50;
850
+ const pages = new Set([1, totalPages]);
851
+ if (!query.trim())
852
+ pages.add(Math.min(Math.max(this.effectiveCurrent, 1), totalPages));
853
+ for (let page = center - radius; page <= center + radius; page++) {
854
+ if (page >= 1 && page <= totalPages)
855
+ pages.add(page);
856
+ }
857
+ if (query.trim() && (!Number.isInteger(parsed) || parsed < 1 || parsed > totalPages))
858
+ return [];
859
+ return [...pages]
860
+ .sort((a, b) => a - b)
861
+ .map((page) => ({ value: String(page), label: String(page), selected: page === this.effectiveCurrent }));
645
862
  }
646
- /**
647
- * Atualiza o z-index do target conforme a propriedade targetZIndex
648
- */
649
- updateTargetZIndex() {
650
- if (this.targetElement === null) {
651
- return;
652
- }
653
- if (this.targetZIndex !== null && this.targetZIndex !== undefined) {
654
- this.targetElement.style.zIndex = this.targetZIndex;
863
+ getCurrentGoToOption(totalPages) {
864
+ const current = Math.min(Math.max(this.effectiveCurrent, 1), totalPages);
865
+ return [{ value: String(current), label: String(current), selected: true }];
866
+ }
867
+ getGoToOptions(totalPages) {
868
+ if (this.goToOptionsCache !== null && this.goToOptionsCache.length === totalPages) {
869
+ return this.goToOptionsCache;
655
870
  }
871
+ this.goToOptionsCache = Array.from({ length: totalPages }, (_, index) => {
872
+ const page = index + 1;
873
+ return { value: String(page), label: String(page) };
874
+ });
875
+ return this.goToOptionsCache;
876
+ }
877
+ renderContextual() {
878
+ const { start, end, total } = this.getRangeInfo();
879
+ const totalPages = this.getTotalPages();
880
+ return (h("nav", { part: "nav", class: this.getCssClassMap(), "aria-busy": this.loading ? 'true' : null, "aria-label": this.getComputedNavAriaLabel(), tabIndex: -1, "data-total": total, "data-current": this.effectiveCurrent, "data-per-page": this.effectivePerPage, id: this.customId }, h("div", { class: "pagination-leading" }, this.renderPerPageSelect(), h("span", { class: "br-divider pagination-divider d-none d-sm-block" }), h("div", { class: "pagination-information d-none d-sm-flex", "aria-live": "polite" }, h("slot", { name: "pagination-info" }, h("span", { class: "current" }, start), "-", h("span", { class: "per-page" }, end), "\u00A0de\u00A0", h("span", { class: "total" }, total), "\u00A0", this.itemsText), this.renderLoading())), h("div", { class: "pagination-trailing" }, this.renderGoToSelect(), h("span", { class: "br-divider pagination-divider d-none d-sm-block" }), h("div", { class: "pagination-arrows" }, h("br-button", { part: "prev-button", exportparts: "button: prev-button-inner", shape: "circle", density: this.effectiveDensity, type: "button", "data-previous-page": true, "prop:ariaLabel": this.previousLabel, onClick: this.handlePrevClick, disabled: this.loading || this.effectiveCurrent <= 1 }, h("br-icon", { "attr:iconName": "fa-solid:angle-left", width: "16", height: "16", "aria-hidden": "true" }), h("span", { class: "visually-hidden" }, this.previousLabel)), h("br-button", { part: "next-button", exportparts: "button: next-button-inner", shape: "circle", density: this.effectiveDensity, type: "button", "data-next-page": true, "prop:ariaLabel": this.nextLabel, onClick: this.handleNextClick, disabled: this.loading || this.effectiveCurrent >= totalPages }, h("br-icon", { "attr:iconName": "fa-solid:angle-right", width: "16", height: "16", "aria-hidden": "true" }), h("span", { class: "visually-hidden" }, this.nextLabel)))), h("span", { class: "visually-hidden", "aria-live": "polite" }, "P\u00E1gina ", this.effectiveCurrent, " de ", totalPages)));
656
881
  }
657
882
  render() {
658
- return (h(Host, { key: '2698c7b809ba3b6b6f2c335120ce881f1fcd8074', "is-open": this.isOpen, placement: this.effectivePlacement, "prevent-auto-dismiss": this.preventAutoDismiss, disabled: this.disabled, "arrow-position": this.effectiveArrowPosition }, h("div", { key: '1d45b636f5afbe0d7c688c86f68d78f373f2f976', class: this.getCssClassMap(), id: this.customId }, h("div", { key: '35296882a111b090286fb03df41d14b59595d4e6', id: "trigger", part: "trigger", role: "group", onClick: this.disabled ? null : this.toggle, onKeyDown: (e) => (this.disabled ? null : this.triggerKeydownHandler(e)) }, this.showArrow && this.effectiveArrowPosition === 'left' ? (h("br-icon", { iconName: this.isOpen ? 'fa6-solid:caret-up' : 'fa6-solid:caret-down', "aria-hidden": "true", part: "trigger-arrow", width: "16", height: "16" })) : null, h("slot", { key: '5c3328afd3ae5a5d1b420c17d5d0fc87f2aaf8bb', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), this.showArrow && this.effectiveArrowPosition === 'right' ? (h("br-icon", { iconName: this.isOpen ? 'fa6-solid:caret-up' : 'fa6-solid:caret-down', "aria-hidden": "true", part: "trigger-arrow", width: "16", height: "16" })) : null), h("div", { key: '09caf7f63963aea11d8731bb4c11512ad0044c14', id: "target", part: "target", "aria-hidden": this.isOpen ? 'false' : 'true' }, h("slot", { key: '16a32487778e68c3f06882e391cf1646a92e691d', name: "target" })))));
883
+ if (this.effectiveVariant === 'contextual') {
884
+ return h(Host, null, this.renderContextual());
885
+ }
886
+ const totalPages = this.getDefaultTotalPages();
887
+ return (h(Host, null, h("nav", { part: "nav", class: this.getCssClassMap(), "aria-busy": this.loading ? 'true' : null, "aria-label": this.getComputedNavAriaLabel(), tabIndex: -1, "data-total": totalPages, "data-current": this.effectiveCurrent, id: this.customId }, h("ul", { part: "list" }, h("li", null, h("br-button", { part: "prev-button", exportparts: "button: prev-button-inner", shape: "circle", density: this.effectiveDensity, type: "button", "data-previous-page": true, "prop:ariaLabel": this.previousLabel, onClick: this.handlePrevClick, disabled: this.loading || this.effectiveCurrent <= 1 }, h("br-icon", { "attr:iconName": "fa-solid:angle-left", width: "16", height: "16", "aria-hidden": "true" }), h("span", { class: "visually-hidden" }, this.previousLabel))), this.renderPages(), this.loading ? (h("li", { part: "loading", class: "pagination-loading" }, this.renderLoading())) : null, h("li", null, h("br-button", { part: "next-button", exportparts: "button: next-button-inner", shape: "circle", density: this.effectiveDensity, type: "button", "data-next-page": true, "prop:ariaLabel": this.nextLabel, onClick: this.handleNextClick, disabled: this.loading || this.effectiveCurrent >= totalPages }, h("br-icon", { "attr:iconName": "fa-solid:angle-right", width: "16", height: "16", "aria-hidden": "true" }), h("span", { class: "visually-hidden" }, this.nextLabel)))), h("span", { class: "visually-hidden", "aria-live": "polite" }, "P\u00E1gina ", this.effectiveCurrent, " de ", totalPages))));
659
888
  }
660
889
  get el() { return getElement(this); }
661
890
  static get watchers() { return {
662
- "isOpen": [{
663
- "isOpenChanged": 0
891
+ "total": [{
892
+ "handleTotalChange": 0
664
893
  }],
665
- "targetZIndex": [{
666
- "targetZIndexChanged": 0
894
+ "totalPages": [{
895
+ "handleTotalPagesChange": 0
667
896
  }],
668
- "placement": [{
669
- "placementChanged": 0
897
+ "current": [{
898
+ "handleCurrentChange": 0
670
899
  }],
671
- "matchTriggerWidth": [{
672
- "matchTriggerWidthChanged": 0
900
+ "currentPage": [{
901
+ "handleCurrentPageChange": 0
673
902
  }],
674
- "disabled": [{
675
- "disabledChanged": 0
903
+ "perPage": [{
904
+ "handlePerPagePropChange": 0
905
+ }],
906
+ "totalItems": [{
907
+ "handleTotalItemsChange": 0
908
+ }],
909
+ "density": [{
910
+ "handleDensityChange": 0
676
911
  }]
677
912
  }; }
678
913
  };
679
- Dropdown.style = dropdownCss();
914
+ Pagination.ELLIPSIS_VISIBLE_ITEMS = 4;
915
+ Pagination.ELLIPSIS_ITEM_HEIGHT_FALLBACK = 56;
916
+ Pagination.ELLIPSIS_OVERSCAN = 1;
917
+ Pagination.LARGE_PAGE_THRESHOLD = 10000;
918
+ Pagination.style = paginationCss();
680
919
 
681
- const selectCss = () => `*,*::before,*::after{box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.align-items-center{align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{flex:1 0 0%;min-width:8.3333333333%}.col-auto{flex:0 0 auto;width:auto}.col-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-fluid,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:flex;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.ease{animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-out{animation-timing-function:cubic-bezier(0, 0, 0.58, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fast{animation-duration:var(--duration-fast)}.slow{animation-duration:var(--duration-slow)}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mb-4{margin-bottom:var(--spacing-scale-3x) !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}.highlight{background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}fieldset[disabled]{opacity:1}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-bold{font-weight:700 !important}.text-base{font-size:var(--font-size-scale-base) !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a.focus-visible,a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}.main-content a{text-decoration:underline}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}tr.selected,tr.is-selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}fieldset,.fieldset{border:var(--surface-width-none);margin-bottom:var(--spacing-scale-5x);margin-top:0;padding:0}legend,.legend{color:var(--color);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2x);margin-top:var(--spacing-scale-2x)}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}pre,.pre{background:var(--gray-5);margin:var(--spacing-scale-2x) 0 var(--spacing-scale-4x);padding:var(--spacing-scale-2x)}*[data-toggle=collapse]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse].focus-visible,*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}@media (prefers-reduced-motion: reduce){:host,:host::before,:host::after,:host *,:host *::before,:host *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}}:host-context([data-wbc-reduced-motion=true])::before,:host-context([data-wbc-reduced-motion=true])::after,:host-context([data-wbc-reduced-motion=true]) *,:host-context([data-wbc-reduced-motion=true]) *::before,:host-context([data-wbc-reduced-motion=true]) *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}.br-select{--select-divider:1px solid var(--color-secondary-04);--select-shadow:var(--surface-shadow-md)}.br-select .br-input input{padding-right:29px;text-overflow:ellipsis}.br-select .br-input input::after{bottom:0;padding:0 5px;position:absolute;right:0}.br-select{max-width:400px;min-width:100px;position:relative}.br-select .br-list{background:var(--bg-color);box-shadow:var(--select-shadow);display:none;margin-top:-2px;max-height:404px;overflow:auto;position:absolute;resize:none;width:100%;z-index:1}.br-select .br-list::-webkit-scrollbar{height:var(--spacing-scale-base);width:var(--spacing-scale-base)}.br-select .br-list::-webkit-scrollbar-track{background:var(--gray-10)}.br-select .br-list::-webkit-scrollbar-thumb{background:var(--gray-30)}.br-select .br-list:hover::-webkit-scrollbar-thumb{background:var(--gray-40)}.br-select .br-list:focus,.br-select .br-list:active{color:var(--color-secondary-09);outline:none}.br-select .br-list:hover::-webkit-scrollbar-thumb{background:var(--color-secondary-07)}.br-select .br-list[expanded]{display:block}.br-select .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--interactive-light-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x)}.br-select .br-item .content{padding:0}.br-select .br-item .br-checkbox,.br-select .br-item .br-radio{--item-padding-x:var(--spacing-scale-2x);--item-padding-y:var(--spacing-scale-2x)}.br-select .br-item .br-checkbox input:hover:not(:disabled)+label::before,.br-select .br-item .br-radio input:hover:not(:disabled)+label::before{background-image:none}.br-select .br-item .br-checkbox input+label,.br-select .br-item .br-radio input+label{padding-left:calc(var(--checkbox-padding) + var(--checkbox-size) + var(--item-padding-x))}.br-select .br-item .br-radio input+label{color:var(--text-color);display:block;height:auto;min-height:0;padding:var(--item-padding)}.br-select .br-item .br-radio input+label::before,.br-select .br-item .br-radio input+label::after{content:none}.br-select .br-item:not(:last-child){border-bottom:var(--select-divider)}.br-select .br-item:not([disabled]){--focus-offset:calc(var(--spacing-scale-half) * -1)}.br-select .br-item:not([disabled]):focus{outline:none}.br-select .br-item:not([disabled]).focus-visible,.br-select .br-item:not([disabled]):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-select .br-item:not([disabled]):not(:disabled):hover{background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-select .br-item.selected,.br-select .br-item[selected]{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.br-select .br-item.selected:focus,.br-select .br-item[selected]:focus{outline:none}.br-select .br-item.selected.focus-visible,.br-select .br-item.selected:focus-visible,.br-select .br-item[selected].focus-visible,.br-select .br-item[selected]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-select .br-item.selected:not(:disabled):hover,.br-select .br-item[selected]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-select .br-item.disabled{line-height:calc(var(--font-line-height-high)*2);padding-left:calc(var(--item-padding) + var(--spacing-scale-base))}.br-select.inverted .br-input,.br-select.inverted .br-input label,.br-select.dark-mode .br-input,.br-select.dark-mode .br-input label{--color:var(--color-dark);--focus-color:var(--focus-color-dark)}:host{box-sizing:border-box;display:block;max-width:100%;width:100%}.br-select{box-sizing:border-box;min-width:0;position:relative;width:100%;max-width:100%}:host([hide-search-icon]) br-select-input::part(icon){display:none}:host([multiple]) .br-select{min-width:0}`;
920
+ const selectCss = () => `*,*::before,*::after{box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.align-items-center{align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{flex:1 0 0%;min-width:8.3333333333%}.col-auto{flex:0 0 auto;width:auto}.col-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-fluid,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:flex;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.ease{animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-out{animation-timing-function:cubic-bezier(0, 0, 0.58, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fast{animation-duration:var(--duration-fast)}.slow{animation-duration:var(--duration-slow)}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mb-4{margin-bottom:var(--spacing-scale-3x) !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.highlight{background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}fieldset[disabled]{opacity:1}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-bold{font-weight:700 !important}.text-base{font-size:var(--font-size-scale-base) !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a.focus-visible,a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}.main-content a{text-decoration:underline}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}tr.selected,tr.is-selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}fieldset,.fieldset{border:var(--surface-width-none);margin-bottom:var(--spacing-scale-5x);margin-top:0;padding:0}legend,.legend{color:var(--color);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2x);margin-top:var(--spacing-scale-2x)}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}pre,.pre{background:var(--gray-5);margin:var(--spacing-scale-2x) 0 var(--spacing-scale-4x);padding:var(--spacing-scale-2x)}mark,.mark{background:var(--red-warm-vivid-10);color:var(--color)}*[data-toggle=collapse]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse].focus-visible,*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}@media (prefers-reduced-motion: reduce){:host,:host::before,:host::after,:host *,:host *::before,:host *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}}:host-context([data-wbc-reduced-motion=true])::before,:host-context([data-wbc-reduced-motion=true])::after,:host-context([data-wbc-reduced-motion=true]) *,:host-context([data-wbc-reduced-motion=true]) *::before,:host-context([data-wbc-reduced-motion=true]) *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}.br-select{--select-divider:1px solid var(--color-secondary-04);--select-shadow:var(--surface-shadow-md)}.br-select .br-input input{padding-right:29px;text-overflow:ellipsis}.br-select .br-input input::after{bottom:0;padding:0 5px;position:absolute;right:0}.br-select{max-width:400px;min-width:100px;position:relative}.br-select .br-list{background:var(--bg-color);box-shadow:var(--select-shadow);display:none;margin-top:-2px;max-height:404px;overflow:auto;position:absolute;resize:none;width:100%;z-index:1}.br-select .br-list::-webkit-scrollbar{height:var(--spacing-scale-base);width:var(--spacing-scale-base)}.br-select .br-list::-webkit-scrollbar-track{background:var(--gray-10)}.br-select .br-list::-webkit-scrollbar-thumb{background:var(--gray-30)}.br-select .br-list:hover::-webkit-scrollbar-thumb{background:var(--gray-40)}.br-select .br-list:focus,.br-select .br-list:active{color:var(--color-secondary-09);outline:none}.br-select .br-list:hover::-webkit-scrollbar-thumb{background:var(--color-secondary-07)}.br-select .br-list[expanded]{display:block}.br-select .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--interactive-light-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x)}.br-select .br-item .content{padding:0}.br-select .br-item .br-checkbox,.br-select .br-item .br-radio{--item-padding-x:var(--spacing-scale-2x);--item-padding-y:var(--spacing-scale-2x)}.br-select .br-item .br-checkbox input:hover:not(:disabled)+label::before,.br-select .br-item .br-radio input:hover:not(:disabled)+label::before{background-image:none}.br-select .br-item .br-checkbox input+label,.br-select .br-item .br-radio input+label{padding-left:calc(var(--checkbox-padding) + var(--checkbox-size) + var(--item-padding-x))}.br-select .br-item .br-radio input+label{color:var(--text-color);display:block;height:auto;min-height:0;padding:var(--item-padding)}.br-select .br-item .br-radio input+label::before,.br-select .br-item .br-radio input+label::after{content:none}.br-select .br-item:not(:last-child){border-bottom:var(--select-divider)}.br-select .br-item:not([disabled]){--focus-offset:calc(var(--spacing-scale-half) * -1)}.br-select .br-item:not([disabled]):focus{outline:none}.br-select .br-item:not([disabled]).focus-visible,.br-select .br-item:not([disabled]):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-select .br-item:not([disabled]):not(:disabled):hover{background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-select .br-item.selected,.br-select .br-item[selected]{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.br-select .br-item.selected:focus,.br-select .br-item[selected]:focus{outline:none}.br-select .br-item.selected.focus-visible,.br-select .br-item.selected:focus-visible,.br-select .br-item[selected].focus-visible,.br-select .br-item[selected]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-select .br-item.selected:not(:disabled):hover,.br-select .br-item[selected]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-select .br-item.disabled{line-height:calc(var(--font-line-height-high)*2);padding-left:calc(var(--item-padding) + var(--spacing-scale-base))}.br-select.inverted .br-input,.br-select.inverted .br-input label,.br-select.dark-mode .br-input,.br-select.dark-mode .br-input label{--color:var(--color-dark);--focus-color:var(--focus-color-dark)}:host{box-sizing:border-box;display:block;max-width:100%;width:100%}.br-select{box-sizing:border-box;min-width:0;position:relative;width:100%;max-width:100%}:host([hide-search-icon]) br-select-input::part(icon){display:none}:host([multiple]) .br-select{min-width:0}`;
682
921
 
683
922
  const SELECT_SEARCH_MODES = ['local', 'remote'];
684
923
  const SELECT_AUTOCOMPLETE_VALUES = ['on', 'off'];
@@ -1278,13 +1517,28 @@ const Select = class {
1278
1517
  */
1279
1518
  handleSelectOptionPropsChange(event) {
1280
1519
  const path = event.composedPath();
1281
- if (path.some((node) => node.tagName?.toLowerCase() === 'br-select-list'))
1282
- return;
1283
1520
  const target = path.find((node) => node.tagName?.toLowerCase() === 'br-select-option');
1284
- if (!(target instanceof HTMLElement) || findComposedOwner(target, 'br-select') !== this.el)
1521
+ // O slot também atravessa br-select-list; filtre a origem, não os ancestrais do evento.
1522
+ if (!(target instanceof HTMLElement) ||
1523
+ !this.el.contains(target) ||
1524
+ findComposedOwner(target, 'br-select') !== this.el)
1285
1525
  return;
1286
1526
  if (this.hasImperativeOptions)
1287
1527
  return;
1528
+ const option = this.optionElementToData(target);
1529
+ if (Boolean(option.selected) !== this.selectedValues.includes(option.value)) {
1530
+ const values = this.isSelectAllOption(option)
1531
+ ? transitionAllSelection(this.selectedValues, Boolean(option.selected), this.getHostOptions()
1532
+ .filter((item) => !this.isSelectAllOption(item) && !item.disabled)
1533
+ .map((item) => item.value)).values
1534
+ : transitionSelection({
1535
+ currentValues: this.selectedValues,
1536
+ multiple: this.effectiveMultiple,
1537
+ value: option.value,
1538
+ selected: Boolean(option.selected),
1539
+ }).values;
1540
+ this.applySelectedValue(this.effectiveMultiple ? values : (values[0] ?? ''));
1541
+ }
1288
1542
  this.slotReconciler.schedule();
1289
1543
  }
1290
1544
  handleSelectOptionHover(event) {
@@ -1609,8 +1863,8 @@ const Select = class {
1609
1863
  const group = this.getOptionElementGroup(el);
1610
1864
  const inner = this.extractInnerTextFromOption(el);
1611
1865
  const content = (el.innerHTML || '').trim();
1612
- const selected = el.hasAttribute('selected') || Boolean(el.selected);
1613
- const disabled = el.hasAttribute('disabled') || Boolean(el.disabled);
1866
+ const selected = el.selected ?? el.hasAttribute('selected');
1867
+ const disabled = el.disabled ?? el.hasAttribute('disabled');
1614
1868
  if (!value && inner)
1615
1869
  value = inner.trim();
1616
1870
  if (!label)
@@ -1731,6 +1985,7 @@ const Select = class {
1731
1985
  const currentOptions = this.getCurrentOptions();
1732
1986
  const requestedValues = this.valueFromPublicValue(value) ?? [];
1733
1987
  this.setSelectedValues(requestedValues);
1988
+ this.syncSlottedOptionSelection(requestedValues);
1734
1989
  const options = currentOptions.map((option) => ({
1735
1990
  ...option,
1736
1991
  selected: requestedValues.includes(option.value),
@@ -2279,7 +2534,7 @@ const Select = class {
2279
2534
  return (h("option", { key: option.value, value: option.value, selected: option.selected, disabled: option.disabled }));
2280
2535
  }
2281
2536
  render() {
2282
- return (h(Host, { key: '6a73a46788b952ed54fc3962563d572b7303222f', "aria-busy": this.isValidating || this.loading ? 'true' : null }, h("div", { key: 'a05db2f095fb30ae9379ec87d8474289d8560a5b', class: this.getCssClassMap(), part: "container" }, this.renderSelectInput(), this.renderSelectList(), h("div", { key: '9218c94b7c8fe9ef170c4b1c9e47559cdae50c16', part: "feedback", hidden: !this.hasFeedbackSlot && !this.validationErrorMessage }, h("slot", { key: '2d74cf5804367c3b8dab39e57a0d050018de84b5', name: "feedback", onSlotchange: (event) => (this.hasFeedbackSlot = hasAssignedSlotContent(event.currentTarget)) }, this.validationErrorMessage ? (h("br-message", { "is-feedback": true, state: "danger", message: this.validationErrorMessage })) : null)), h("div", { key: 'f2e6019a54128ddae642226986ecf13803fce30d', part: "validation-loading", hidden: !this.hasValidationLoadingSlot || !this.isValidating }, h("slot", { key: '3d83e4359c05d95294d1d9ab87fef1d7d068f1f3', name: "validation-loading" })), this.renderHiddenSelect())));
2537
+ return (h(Host, { key: '069ea9baa54541cd5a244ec5844076688667fb2f', "aria-busy": this.isValidating || this.loading ? 'true' : null }, h("div", { key: '06f1ad8ab886e38e44dc32aba6e9844fa8f7005d', class: this.getCssClassMap(), part: "container" }, this.renderSelectInput(), this.renderSelectList(), h("div", { key: '854c1652fdd2f7898161bf5e2b1f421777b13f67', part: "feedback", hidden: !this.hasFeedbackSlot && !this.validationErrorMessage }, h("slot", { key: 'e2f9e8d2cf923c141ad99548199a83220875c856', name: "feedback", onSlotchange: (event) => (this.hasFeedbackSlot = hasAssignedSlotContent(event.currentTarget)) }, this.validationErrorMessage ? (h("br-message", { "is-feedback": true, state: "danger", message: this.validationErrorMessage })) : null)), h("div", { key: 'eeae8b42349885ab811d70e713efcd8d07a14901', part: "validation-loading", hidden: !this.hasValidationLoadingSlot || !this.isValidating }, h("slot", { key: 'c0f8cf4f917845629b34e32f597409571abf402e', name: "validation-loading" })), this.renderHiddenSelect())));
2283
2538
  }
2284
2539
  static get formAssociated() { return true; }
2285
2540
  get el() { return getElement(this); }
@@ -2317,4 +2572,4 @@ Select.SELECT_ALL_LABEL = 'Selecionar todos';
2317
2572
  Select.DESELECT_ALL_LABEL = 'Desselecionar todos';
2318
2573
  Select.style = selectCss();
2319
2574
 
2320
- export { Dropdown as br_dropdown, Select as br_select };
2575
+ export { Pagination as br_pagination, Select as br_select };