@govbr-ds/webcomponents 2.4.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 (850) hide show
  1. package/README.md +2 -2
  2. package/cem/custom-elements.json +4438 -1034
  3. package/cem/webcomponents.html-custom-data.json +491 -160
  4. package/dist/cjs/br-avatar.cjs.entry.js +4 -4
  5. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +2 -2
  6. package/dist/cjs/br-breadcrumb.cjs.entry.js +11 -11
  7. package/dist/cjs/br-button_2.cjs.entry.js +6 -6
  8. package/dist/cjs/br-card.cjs.entry.js +4 -4
  9. package/dist/cjs/br-carousel-page.cjs.entry.js +3 -3
  10. package/dist/cjs/br-carousel.cjs.entry.js +5 -5
  11. package/dist/cjs/br-checkbox-group.cjs.entry.js +4 -4
  12. package/dist/cjs/br-checkbox.cjs.entry.js +5 -5
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +2 -2
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +10 -10
  15. package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +3 -3
  16. package/dist/cjs/br-cookiebar-group.cjs.entry.js +4 -4
  17. package/dist/cjs/br-cookiebar-header.cjs.entry.js +3 -3
  18. package/dist/cjs/br-cookiebar-link.cjs.entry.js +3 -3
  19. package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +3 -3
  20. package/dist/cjs/br-cookiebar-note.cjs.entry.js +3 -3
  21. package/dist/cjs/br-cookiebar.cjs.entry.js +5 -5
  22. package/dist/cjs/br-crumb.cjs.entry.js +2 -2
  23. package/dist/cjs/br-date-picker_3.cjs.entry.js +165 -78
  24. package/dist/cjs/br-datetime-picker.cjs.entry.js +11 -28
  25. package/dist/cjs/br-divider.cjs.entry.js +4 -4
  26. package/dist/cjs/br-dropdown.cjs.entry.js +677 -0
  27. package/dist/cjs/br-footer-category.cjs.entry.js +4 -4
  28. package/dist/cjs/br-footer-item.cjs.entry.js +3 -3
  29. package/dist/cjs/br-footer-legal.cjs.entry.js +3 -3
  30. package/dist/cjs/br-footer-logo.cjs.entry.js +3 -3
  31. package/dist/cjs/br-footer-social.cjs.entry.js +3 -3
  32. package/dist/cjs/br-footer.cjs.entry.js +5 -5
  33. package/dist/cjs/br-header-function.cjs.entry.js +3 -3
  34. package/dist/cjs/br-header-link.cjs.entry.js +3 -3
  35. package/dist/cjs/br-header-list.cjs.entry.js +4 -4
  36. package/dist/cjs/br-header-logo.cjs.entry.js +3 -3
  37. package/dist/cjs/br-header.cjs.entry.js +6 -6
  38. package/dist/cjs/br-icon.cjs.entry.js +173 -159
  39. package/dist/cjs/br-input_2.cjs.entry.js +1427 -0
  40. package/dist/cjs/br-item.cjs.entry.js +4 -4
  41. package/dist/cjs/br-link.cjs.entry.js +9 -9
  42. package/dist/cjs/br-magic-button.cjs.entry.js +11 -12
  43. package/dist/cjs/br-menu-group.cjs.entry.js +3 -3
  44. package/dist/cjs/br-menu-header.cjs.entry.js +3 -3
  45. package/dist/cjs/br-menu-info.cjs.entry.js +3 -3
  46. package/dist/cjs/br-menu-item.cjs.entry.js +3 -3
  47. package/dist/cjs/br-menu-link.cjs.entry.js +3 -3
  48. package/dist/cjs/br-menu-list.cjs.entry.js +2 -2
  49. package/dist/cjs/br-menu-logo.cjs.entry.js +3 -3
  50. package/dist/cjs/br-menu-social.cjs.entry.js +2 -2
  51. package/dist/cjs/br-menu.cjs.entry.js +5 -5
  52. package/dist/cjs/br-modal.cjs.entry.js +2 -2
  53. package/dist/cjs/br-notification-body.cjs.entry.js +3 -3
  54. package/dist/cjs/br-notification-header.cjs.entry.js +3 -3
  55. package/dist/cjs/br-notification-item.cjs.entry.js +3 -3
  56. package/dist/cjs/br-notification.cjs.entry.js +4 -4
  57. package/dist/cjs/br-pagination_2.cjs.entry.js +2578 -0
  58. package/dist/cjs/br-radio-group.cjs.entry.js +5 -5
  59. package/dist/cjs/br-radio.cjs.entry.js +5 -5
  60. package/dist/cjs/br-scrim.cjs.entry.js +4 -4
  61. package/dist/cjs/br-select-input_3.cjs.entry.js +49 -103
  62. package/dist/cjs/br-sign-in.cjs.entry.js +4 -4
  63. package/dist/cjs/br-skip-link-item.cjs.entry.js +2 -2
  64. package/dist/cjs/br-skip-link.cjs.entry.js +3 -3
  65. package/dist/cjs/br-skiplink-item.cjs.entry.js +3 -3
  66. package/dist/cjs/br-slider.cjs.entry.js +4 -4
  67. package/dist/cjs/br-step_2.cjs.entry.js +7 -7
  68. package/dist/cjs/br-switch.cjs.entry.js +5 -5
  69. package/dist/cjs/br-tab-item.cjs.entry.js +3 -3
  70. package/dist/cjs/br-tab.cjs.entry.js +8 -8
  71. package/dist/cjs/br-table-action_6.cjs.entry.js +1500 -0
  72. package/dist/cjs/br-table-body.cjs.entry.js +4 -16
  73. package/dist/cjs/br-table-header.cjs.entry.js +4 -16
  74. package/dist/cjs/br-table.cjs.entry.js +2616 -433
  75. package/dist/cjs/br-tag.cjs.entry.js +5 -5
  76. package/dist/cjs/br-textarea.cjs.entry.js +4 -4
  77. package/dist/cjs/br-tooltip.cjs.entry.js +5 -29
  78. package/dist/cjs/br-upload.cjs.entry.js +5 -5
  79. package/dist/cjs/br-wizard-panel.cjs.entry.js +3 -3
  80. package/dist/cjs/br-wizard.cjs.entry.js +3 -3
  81. package/dist/cjs/{datetime-picker-constants-CCeI5iW7.js → datetime-picker-constants-CTf1kVJ1.js} +1 -0
  82. package/dist/cjs/helpers-DkkDubv1.js +28 -0
  83. package/dist/cjs/{icon.utils-DF6kMskA.js → icon.utils-CMs0ukvR.js} +1 -1
  84. package/dist/cjs/{iconify-icon-DfODV9bf.js → iconify-icon-LjavbM-D.js} +103 -57
  85. package/dist/cjs/{index-Bc30P_6z.js → index-BP8UIQro.js} +34 -34
  86. package/dist/cjs/{index-C-IpVFDH.js → index-Caoez3xb.js} +64 -16
  87. package/dist/cjs/index.cjs.js +2 -2
  88. package/dist/cjs/{isValid-CduHZTFc.js → isValid-DgJ-noPS.js} +1 -1
  89. package/dist/cjs/loader.cjs.js +2 -2
  90. package/dist/cjs/{slot-DAllytTj.js → slot-CjaqqX7y.js} +1 -1
  91. package/dist/cjs/table.utils-De-9_NgJ.js +749 -0
  92. package/dist/cjs/webcomponents.cjs.js +2 -2
  93. package/dist/collection/collection-manifest.json +3 -0
  94. package/dist/collection/components/avatar/avatar.css +1 -1
  95. package/dist/collection/components/avatar/avatar.js +21 -21
  96. package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +4 -12
  97. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  98. package/dist/collection/components/breadcrumb/breadcrumb.js +39 -34
  99. package/dist/collection/components/breadcrumb/crumb/crumb.js +2 -13
  100. package/dist/collection/components/button/button.css +1 -1
  101. package/dist/collection/components/button/button.js +22 -22
  102. package/dist/collection/components/card/card.css +1 -1
  103. package/dist/collection/components/card/card.js +20 -22
  104. package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
  105. package/dist/collection/components/carousel/carousel-page/carousel-page.js +3 -13
  106. package/dist/collection/components/carousel/carousel.css +1 -1
  107. package/dist/collection/components/carousel/carousel.js +25 -32
  108. package/dist/collection/components/checkbox/checkbox.css +1 -1
  109. package/dist/collection/components/checkbox/checkbox.js +18 -24
  110. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  111. package/dist/collection/components/checkbox-group/checkbox-group.js +19 -20
  112. package/dist/collection/components/checkgroup/checkgroup.js +2 -14
  113. package/dist/collection/components/collapse/collapse.css +1 -1
  114. package/dist/collection/components/collapse/collapse.js +33 -29
  115. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
  116. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +3 -16
  117. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
  118. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +4 -17
  119. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
  120. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +3 -16
  121. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
  122. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +3 -15
  123. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
  124. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +3 -14
  125. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
  126. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +3 -14
  127. package/dist/collection/components/cookiebar/cookiebar.css +1 -1
  128. package/dist/collection/components/cookiebar/cookiebar.js +33 -28
  129. package/dist/collection/components/datetime-picker/date-picker/date-picker-locale.js +62 -15
  130. package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
  131. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +123 -74
  132. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
  133. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +5 -15
  134. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  135. package/dist/collection/components/datetime-picker/datetime-picker.js +23 -27
  136. package/dist/collection/components/datetime-picker/datetime-picker.utils.js +6 -6
  137. package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
  138. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +7 -17
  139. package/dist/collection/components/divider/divider.css +1 -1
  140. package/dist/collection/components/divider/divider.js +15 -19
  141. package/dist/collection/components/dropdown/dropdown.css +1 -1
  142. package/dist/collection/components/dropdown/dropdown.js +27 -28
  143. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  144. package/dist/collection/components/footer/footer-category/footer-category.js +4 -17
  145. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  146. package/dist/collection/components/footer/footer-item/footer-item.js +3 -16
  147. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  148. package/dist/collection/components/footer/footer-legal/footer-legal.js +2 -16
  149. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  150. package/dist/collection/components/footer/footer-logo/footer-logo.js +3 -16
  151. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  152. package/dist/collection/components/footer/footer-social/footer-social.js +4 -16
  153. package/dist/collection/components/footer/footer.css +1 -1
  154. package/dist/collection/components/footer/footer.js +25 -29
  155. package/dist/collection/components/header/header-function/header-function.css +1 -1
  156. package/dist/collection/components/header/header-function/header-function.js +10 -14
  157. package/dist/collection/components/header/header-link/header-link.css +1 -1
  158. package/dist/collection/components/header/header-link/header-link.js +3 -16
  159. package/dist/collection/components/header/header-list/header-list.css +1 -1
  160. package/dist/collection/components/header/header-list/header-list.js +4 -17
  161. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  162. package/dist/collection/components/header/header-logo/header-logo.js +3 -16
  163. package/dist/collection/components/header/header.css +1 -1
  164. package/dist/collection/components/header/header.js +33 -30
  165. package/dist/collection/components/icon/default-icons-cache.js +159 -146
  166. package/dist/collection/components/icon/icon.css +1 -1
  167. package/dist/collection/components/icon/icon.js +38 -29
  168. package/dist/collection/components/icon/icon.utils.js +1 -1
  169. package/dist/collection/components/input/input.css +1 -1
  170. package/dist/collection/components/input/input.js +216 -30
  171. package/dist/collection/components/item/item.css +1 -1
  172. package/dist/collection/components/item/item.js +18 -22
  173. package/dist/collection/components/link/link.css +1 -1
  174. package/dist/collection/components/link/link.js +25 -29
  175. package/dist/collection/components/list/list.css +1 -1
  176. package/dist/collection/components/list/list.js +17 -21
  177. package/dist/collection/components/loading/loading.css +1 -1
  178. package/dist/collection/components/loading/loading.js +17 -24
  179. package/dist/collection/components/magic-button/magic-button.css +1 -1
  180. package/dist/collection/components/magic-button/magic-button.js +21 -29
  181. package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
  182. package/dist/collection/components/menu/menu-group/menu-group.js +3 -16
  183. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  184. package/dist/collection/components/menu/menu-header/menu-header.js +3 -16
  185. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  186. package/dist/collection/components/menu/menu-info/menu-info.js +2 -15
  187. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  188. package/dist/collection/components/menu/menu-item/menu-item.js +3 -16
  189. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  190. package/dist/collection/components/menu/menu-link/menu-link.js +5 -17
  191. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  192. package/dist/collection/components/menu/menu-list/menu-list.js +2 -15
  193. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  194. package/dist/collection/components/menu/menu-logo/menu-logo.js +2 -15
  195. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  196. package/dist/collection/components/menu/menu-social/menu-social.js +3 -16
  197. package/dist/collection/components/menu/menu.css +1 -1
  198. package/dist/collection/components/menu/menu.js +28 -35
  199. package/dist/collection/components/message/message.css +1 -1
  200. package/dist/collection/components/message/message.js +22 -25
  201. package/dist/collection/components/modal/modal.css +1 -1
  202. package/dist/collection/components/modal/modal.js +18 -21
  203. package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
  204. package/dist/collection/components/notification/notification-body/notification-body.js +3 -13
  205. package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
  206. package/dist/collection/components/notification/notification-header/notification-header.js +3 -14
  207. package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
  208. package/dist/collection/components/notification/notification-item/notification-item.js +3 -16
  209. package/dist/collection/components/notification/notification.css +1 -1
  210. package/dist/collection/components/notification/notification.js +20 -29
  211. package/dist/collection/components/pagination/pagination.css +1 -1
  212. package/dist/collection/components/pagination/pagination.js +19 -27
  213. package/dist/collection/components/radio/radio.css +1 -1
  214. package/dist/collection/components/radio/radio.js +17 -20
  215. package/dist/collection/components/radio-group/radio-group.css +1 -1
  216. package/dist/collection/components/radio-group/radio-group.js +20 -20
  217. package/dist/collection/components/scrim/scrim.css +1 -1
  218. package/dist/collection/components/scrim/scrim.js +14 -17
  219. package/dist/collection/components/select/select-input/select-input.css +1 -1
  220. package/dist/collection/components/select/select-input/select-input.js +48 -102
  221. package/dist/collection/components/select/select-list/select-list.css +1 -1
  222. package/dist/collection/components/select/select-list/select-list.js +52 -15
  223. package/dist/collection/components/select/select-option/select-option.css +1 -1
  224. package/dist/collection/components/select/select-option/select-option.js +13 -17
  225. package/dist/collection/components/select/select.css +1 -1
  226. package/dist/collection/components/select/select.js +104 -110
  227. package/dist/collection/components/sign-in/sign-in.css +1 -1
  228. package/dist/collection/components/sign-in/sign-in.js +12 -16
  229. package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +8 -4
  230. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  231. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +5 -15
  232. package/dist/collection/components/skip-link/skip-link.css +1 -1
  233. package/dist/collection/components/skip-link/skip-link.js +18 -24
  234. package/dist/collection/components/slider/slider.css +1 -1
  235. package/dist/collection/components/slider/slider.js +18 -28
  236. package/dist/collection/components/step/step-item/step-item.css +1 -1
  237. package/dist/collection/components/step/step-item/step-item.js +5 -15
  238. package/dist/collection/components/step/step.css +1 -1
  239. package/dist/collection/components/step/step.js +16 -25
  240. package/dist/collection/components/switch/switch.css +1 -1
  241. package/dist/collection/components/switch/switch.js +16 -20
  242. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  243. package/dist/collection/components/tab/tab-item/tab-item.js +6 -16
  244. package/dist/collection/components/tab/tab.css +1 -1
  245. package/dist/collection/components/tab/tab.js +24 -31
  246. package/dist/collection/components/table/table-action/table-action.css +1 -0
  247. package/dist/collection/components/table/table-action/table-action.js +349 -0
  248. package/dist/collection/components/table/table-bar/table-bar.css +1 -0
  249. package/dist/collection/components/table/table-bar/table-bar.js +652 -0
  250. package/dist/collection/components/table/table-body/table-body.css +1 -1
  251. package/dist/collection/components/table/table-body/table-body.js +11 -26
  252. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  253. package/dist/collection/components/table/table-cell/table-cell.js +555 -91
  254. package/dist/collection/components/table/table-footer/table-footer.css +1 -0
  255. package/dist/collection/components/table/table-footer/table-footer.js +233 -0
  256. package/dist/collection/components/table/table-header/table-header.css +1 -1
  257. package/dist/collection/components/table/table-header/table-header.js +10 -26
  258. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  259. package/dist/collection/components/table/table-header-cell/table-header-cell.js +286 -95
  260. package/dist/collection/components/table/table-row/table-row.css +1 -1
  261. package/dist/collection/components/table/table-row/table-row.js +311 -66
  262. package/dist/collection/components/table/table.actions-tooltip.js +33 -0
  263. package/dist/collection/components/table/{table-constants.js → table.constants.js} +54 -77
  264. package/dist/collection/components/table/table.css +1 -1
  265. package/dist/collection/components/table/table.data.js +461 -0
  266. package/dist/collection/components/table/table.expansion.elements.js +70 -0
  267. package/dist/collection/components/table/table.expansion.js +179 -0
  268. package/dist/collection/components/table/table.grouping.js +97 -0
  269. package/dist/collection/components/table/table.header-height.js +47 -0
  270. package/dist/collection/components/table/table.js +2499 -625
  271. package/dist/collection/components/table/table.keyboard.js +340 -0
  272. package/dist/collection/components/table/table.scroll-shadows.js +36 -0
  273. package/dist/collection/components/table/table.selection.elements.js +63 -0
  274. package/dist/collection/components/table/table.selection.js +239 -0
  275. package/dist/collection/components/table/table.tokens.js +28 -0
  276. package/dist/collection/components/table/table.types.js +1 -0
  277. package/dist/collection/components/table/table.utils.js +75 -0
  278. package/dist/collection/components/table/table.virtual-list.js +342 -0
  279. package/dist/collection/components/tag/tag.css +1 -1
  280. package/dist/collection/components/tag/tag.js +17 -26
  281. package/dist/collection/components/textarea/textarea.css +1 -1
  282. package/dist/collection/components/textarea/textarea.js +14 -22
  283. package/dist/collection/components/tooltip/tooltip.css +1 -1
  284. package/dist/collection/components/tooltip/tooltip.js +15 -45
  285. package/dist/collection/components/upload/upload.css +1 -1
  286. package/dist/collection/components/upload/upload.js +36 -29
  287. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  288. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +3 -13
  289. package/dist/collection/components/wizard/wizard.css +1 -1
  290. package/dist/collection/components/wizard/wizard.js +22 -26
  291. package/dist/collection/pages/components/select/remote-options.js +87 -0
  292. package/dist/collection/pages/scripts/code-editor.js +28 -3
  293. package/dist/collection/pages/scripts/pageLoader.js +286 -20
  294. package/dist/collection/pages/scripts/pageloader-preview.js +3 -1
  295. package/dist/collection/shared/utils/slot.js +1 -1
  296. package/dist/components/br-avatar.js +1 -1
  297. package/dist/components/br-breadcrumb-item.js +1 -1
  298. package/dist/components/br-breadcrumb.js +1 -1
  299. package/dist/components/br-button.js +1 -1
  300. package/dist/components/br-card.js +1 -1
  301. package/dist/components/br-carousel-page.js +1 -1
  302. package/dist/components/br-carousel.js +1 -1
  303. package/dist/components/br-checkbox-group.js +1 -1
  304. package/dist/components/br-checkbox.js +1 -1
  305. package/dist/components/br-checkgroup.js +1 -1
  306. package/dist/components/br-collapse.js +1 -1
  307. package/dist/components/br-cookiebar-cookie.js +1 -1
  308. package/dist/components/br-cookiebar-group.js +1 -1
  309. package/dist/components/br-cookiebar-header.js +1 -1
  310. package/dist/components/br-cookiebar-link.js +1 -1
  311. package/dist/components/br-cookiebar-note-group.js +1 -1
  312. package/dist/components/br-cookiebar-note.js +1 -1
  313. package/dist/components/br-cookiebar.js +1 -1
  314. package/dist/components/br-crumb.js +1 -1
  315. package/dist/components/br-date-picker.js +1 -1
  316. package/dist/components/br-datetime-input.js +1 -1
  317. package/dist/components/br-datetime-picker.js +1 -1
  318. package/dist/components/br-divider.js +1 -1
  319. package/dist/components/br-dropdown.js +1 -1
  320. package/dist/components/br-footer-category.js +1 -1
  321. package/dist/components/br-footer-item.js +1 -1
  322. package/dist/components/br-footer-legal.js +1 -1
  323. package/dist/components/br-footer-logo.js +1 -1
  324. package/dist/components/br-footer-social.js +1 -1
  325. package/dist/components/br-footer.js +1 -1
  326. package/dist/components/br-header-function.js +1 -1
  327. package/dist/components/br-header-link.js +1 -1
  328. package/dist/components/br-header-list.js +1 -1
  329. package/dist/components/br-header-logo.js +1 -1
  330. package/dist/components/br-header.js +1 -1
  331. package/dist/components/br-icon.js +1 -1
  332. package/dist/components/br-input.js +1 -1
  333. package/dist/components/br-item.js +1 -1
  334. package/dist/components/br-link.js +1 -1
  335. package/dist/components/br-list.js +1 -1
  336. package/dist/components/br-loading.js +1 -1
  337. package/dist/components/br-magic-button.js +1 -1
  338. package/dist/components/br-menu-group.js +1 -1
  339. package/dist/components/br-menu-header.js +1 -1
  340. package/dist/components/br-menu-info.js +1 -1
  341. package/dist/components/br-menu-item.js +1 -1
  342. package/dist/components/br-menu-link.js +1 -1
  343. package/dist/components/br-menu-list.js +1 -1
  344. package/dist/components/br-menu-logo.js +1 -1
  345. package/dist/components/br-menu-social.js +1 -1
  346. package/dist/components/br-menu.js +1 -1
  347. package/dist/components/br-message.js +1 -1
  348. package/dist/components/br-modal.js +1 -1
  349. package/dist/components/br-notification-body.js +1 -1
  350. package/dist/components/br-notification-header.js +1 -1
  351. package/dist/components/br-notification-item.js +1 -1
  352. package/dist/components/br-notification.js +1 -1
  353. package/dist/components/br-pagination.js +1 -1
  354. package/dist/components/br-radio-group.js +1 -1
  355. package/dist/components/br-radio.js +1 -1
  356. package/dist/components/br-scrim.js +1 -1
  357. package/dist/components/br-select-input.js +1 -1
  358. package/dist/components/br-select-list.js +1 -1
  359. package/dist/components/br-select-option.js +1 -1
  360. package/dist/components/br-select.js +1 -1
  361. package/dist/components/br-sign-in.js +1 -1
  362. package/dist/components/br-skip-link-item.js +1 -1
  363. package/dist/components/br-skip-link.js +1 -1
  364. package/dist/components/br-skiplink-item.js +1 -1
  365. package/dist/components/br-slider.js +1 -1
  366. package/dist/components/br-step-item.js +1 -1
  367. package/dist/components/br-step.js +1 -1
  368. package/dist/components/br-switch.js +1 -1
  369. package/dist/components/br-tab-item.js +1 -1
  370. package/dist/components/br-tab.js +1 -1
  371. package/dist/components/br-table-action.d.ts +11 -0
  372. package/dist/components/br-table-action.js +5 -0
  373. package/dist/components/br-table-bar.d.ts +11 -0
  374. package/dist/components/br-table-bar.js +5 -0
  375. package/dist/components/br-table-body.js +1 -1
  376. package/dist/components/br-table-cell.js +1 -1
  377. package/dist/components/br-table-footer.d.ts +11 -0
  378. package/dist/components/br-table-footer.js +5 -0
  379. package/dist/components/br-table-header-cell.js +1 -1
  380. package/dist/components/br-table-header.js +1 -1
  381. package/dist/components/br-table-row.js +1 -1
  382. package/dist/components/br-table.js +1 -1
  383. package/dist/components/br-tag.js +1 -1
  384. package/dist/components/br-textarea.js +1 -1
  385. package/dist/components/br-time-picker.js +1 -1
  386. package/dist/components/br-tooltip.js +1 -1
  387. package/dist/components/br-upload.js +1 -1
  388. package/dist/components/br-wizard-panel.js +1 -1
  389. package/dist/components/br-wizard.js +1 -1
  390. package/dist/components/index.d.ts +6 -0
  391. package/dist/components/index.js +1 -1
  392. package/dist/components/p-082jxuTj.js +5 -0
  393. package/dist/components/p-381n6AwK.js +5 -0
  394. package/dist/components/p-B5_zbRAr.js +5 -0
  395. package/dist/components/p-BE1gDPwC.js +5 -0
  396. package/dist/components/p-BV-c2pxt.js +5 -0
  397. package/dist/components/p-BfFbYAuJ.js +5 -0
  398. package/dist/components/{p-ta-24T1Z.js → p-Bi2E_w9Q.js} +1 -1
  399. package/dist/components/p-Bk8YcMql.js +5 -0
  400. package/dist/components/p-C3ISxUGw.js +5 -0
  401. package/dist/components/p-C3J0TVQO.js +5 -0
  402. package/dist/components/p-C6m13lCc.js +5 -0
  403. package/dist/components/{p-DBmwzG9E.js → p-CCWJ-H33.js} +1 -1
  404. package/dist/components/p-CJuHirYK.js +5 -0
  405. package/dist/components/{p-PV731d8s.js → p-CKS7ggLM.js} +1 -1
  406. package/dist/components/p-COSFBwu9.js +5 -0
  407. package/dist/components/{p-DsO4F0Cz.js → p-CVz_akHx.js} +1 -1
  408. package/dist/components/p-CWPrXYam.js +5 -0
  409. package/dist/components/p-C_DC6oQW.js +16 -0
  410. package/dist/components/p-Ca89D_0s.js +5 -0
  411. package/dist/components/p-CbN58CFi.js +5 -0
  412. package/dist/components/p-CjjxTkKb.js +5 -0
  413. package/dist/components/p-Ck9t4WSb.js +5 -0
  414. package/dist/components/p-CvfVwD6_.js +5 -0
  415. package/dist/components/p-D-1sfjhG.js +5 -0
  416. package/dist/components/p-D-p4vLlP.js +5 -0
  417. package/dist/components/p-D6DArHGH.js +5 -0
  418. package/dist/components/p-DD3BItoS.js +5 -0
  419. package/dist/components/{p-jOb1hCPi.js → p-DEIKwFIf.js} +1 -1
  420. package/dist/components/p-DHHAIESt.js +5 -0
  421. package/dist/components/{p-Jk_KQE5V.js → p-DMj5iO7_.js} +1 -1
  422. package/dist/components/p-DUI-S07G.js +5 -0
  423. package/dist/components/p-D_K9JH6J.js +5 -0
  424. package/dist/components/p-DiQp2Lap.js +5 -0
  425. package/dist/components/{p-rMnkh3Cy.js → p-Dn36Mj2E.js} +1 -1
  426. package/dist/components/{p-D-3G3Ioq.js → p-Dvbqhybt.js} +1 -1
  427. package/dist/components/p-Dy7MSvt-.js +5 -0
  428. package/dist/components/p-DywTXNHQ.js +5 -0
  429. package/dist/components/p-Ft_P7Roz.js +5 -0
  430. package/dist/components/{p-CbgKdASU.js → p-JkJjzmGm.js} +1 -1
  431. package/dist/components/p-KuiFoKDl.js +5 -0
  432. package/dist/components/p-MiiczSWA.js +5 -0
  433. package/dist/components/p-Um3K2SHu.js +5 -0
  434. package/dist/components/p-YxddSP6q.js +5 -0
  435. package/dist/components/p-Zk91ebVT.js +5 -0
  436. package/dist/components/p-jv2oG0vH.js +5 -0
  437. package/dist/components/p-nrG_Gd0c.js +5 -0
  438. package/dist/components/p-syLEZrcg.js +5 -0
  439. package/dist/components/p-ydfWTgrA.js +5 -0
  440. package/dist/esm/br-avatar.entry.js +5 -5
  441. package/dist/esm/br-breadcrumb-item.entry.js +2 -2
  442. package/dist/esm/br-breadcrumb.entry.js +12 -12
  443. package/dist/esm/br-button_2.entry.js +7 -7
  444. package/dist/esm/br-card.entry.js +4 -4
  445. package/dist/esm/br-carousel-page.entry.js +3 -3
  446. package/dist/esm/br-carousel.entry.js +6 -6
  447. package/dist/esm/br-checkbox-group.entry.js +5 -5
  448. package/dist/esm/br-checkbox.entry.js +6 -6
  449. package/dist/esm/br-checkgroup.entry.js +2 -2
  450. package/dist/esm/br-collapse_2.entry.js +11 -11
  451. package/dist/esm/br-cookiebar-cookie.entry.js +3 -3
  452. package/dist/esm/br-cookiebar-group.entry.js +4 -4
  453. package/dist/esm/br-cookiebar-header.entry.js +3 -3
  454. package/dist/esm/br-cookiebar-link.entry.js +4 -4
  455. package/dist/esm/br-cookiebar-note-group.entry.js +3 -3
  456. package/dist/esm/br-cookiebar-note.entry.js +3 -3
  457. package/dist/esm/br-cookiebar.entry.js +6 -6
  458. package/dist/esm/br-crumb.entry.js +2 -2
  459. package/dist/esm/br-date-picker_3.entry.js +165 -78
  460. package/dist/esm/br-datetime-picker.entry.js +10 -27
  461. package/dist/esm/br-divider.entry.js +5 -5
  462. package/dist/esm/br-dropdown.entry.js +675 -0
  463. package/dist/esm/br-footer-category.entry.js +4 -4
  464. package/dist/esm/br-footer-item.entry.js +4 -4
  465. package/dist/esm/br-footer-legal.entry.js +3 -3
  466. package/dist/esm/br-footer-logo.entry.js +4 -4
  467. package/dist/esm/br-footer-social.entry.js +4 -4
  468. package/dist/esm/br-footer.entry.js +6 -6
  469. package/dist/esm/br-header-function.entry.js +4 -4
  470. package/dist/esm/br-header-link.entry.js +4 -4
  471. package/dist/esm/br-header-list.entry.js +4 -4
  472. package/dist/esm/br-header-logo.entry.js +4 -4
  473. package/dist/esm/br-header.entry.js +7 -7
  474. package/dist/esm/br-icon.entry.js +174 -160
  475. package/dist/esm/br-input_2.entry.js +1424 -0
  476. package/dist/esm/br-item.entry.js +5 -5
  477. package/dist/esm/br-link.entry.js +10 -10
  478. package/dist/esm/br-magic-button.entry.js +12 -13
  479. package/dist/esm/br-menu-group.entry.js +3 -3
  480. package/dist/esm/br-menu-header.entry.js +3 -3
  481. package/dist/esm/br-menu-info.entry.js +3 -3
  482. package/dist/esm/br-menu-item.entry.js +4 -4
  483. package/dist/esm/br-menu-link.entry.js +4 -4
  484. package/dist/esm/br-menu-list.entry.js +2 -2
  485. package/dist/esm/br-menu-logo.entry.js +3 -3
  486. package/dist/esm/br-menu-social.entry.js +3 -3
  487. package/dist/esm/br-menu.entry.js +6 -6
  488. package/dist/esm/br-modal.entry.js +3 -3
  489. package/dist/esm/br-notification-body.entry.js +3 -3
  490. package/dist/esm/br-notification-header.entry.js +3 -3
  491. package/dist/esm/br-notification-item.entry.js +4 -4
  492. package/dist/esm/br-notification.entry.js +5 -5
  493. package/dist/esm/br-pagination_2.entry.js +2575 -0
  494. package/dist/esm/br-radio-group.entry.js +6 -6
  495. package/dist/esm/br-radio.entry.js +6 -6
  496. package/dist/esm/br-scrim.entry.js +5 -5
  497. package/dist/esm/br-select-input_3.entry.js +50 -104
  498. package/dist/esm/br-sign-in.entry.js +5 -5
  499. package/dist/esm/br-skip-link-item.entry.js +2 -2
  500. package/dist/esm/br-skip-link.entry.js +4 -4
  501. package/dist/esm/br-skiplink-item.entry.js +4 -4
  502. package/dist/esm/br-slider.entry.js +5 -5
  503. package/dist/esm/br-step_2.entry.js +8 -8
  504. package/dist/esm/br-switch.entry.js +6 -6
  505. package/dist/esm/br-tab-item.entry.js +4 -4
  506. package/dist/esm/br-tab.entry.js +9 -9
  507. package/dist/esm/br-table-action_6.entry.js +1493 -0
  508. package/dist/esm/br-table-body.entry.js +4 -16
  509. package/dist/esm/br-table-header.entry.js +4 -16
  510. package/dist/esm/br-table.entry.js +2591 -408
  511. package/dist/esm/br-tag.entry.js +6 -6
  512. package/dist/esm/br-textarea.entry.js +5 -5
  513. package/dist/esm/br-tooltip.entry.js +6 -30
  514. package/dist/esm/br-upload.entry.js +6 -6
  515. package/dist/esm/br-wizard-panel.entry.js +3 -3
  516. package/dist/esm/br-wizard.entry.js +4 -4
  517. package/dist/esm/{datetime-picker-constants-DDc4sADe.js → datetime-picker-constants-1l4_-FEJ.js} +1 -1
  518. package/dist/esm/helpers-BNW9pAhl.js +26 -0
  519. package/dist/esm/{icon.utils-zlORkiHQ.js → icon.utils-CXDYKUBz.js} +1 -1
  520. package/dist/esm/{iconify-icon-D3usVJE2.js → iconify-icon-C_DC6oQW.js} +103 -57
  521. package/dist/esm/{index-CytVKoHT.js → index-BQRBKuY0.js} +64 -17
  522. package/dist/esm/{index-ConyRdJe.js → index-CwL52661.js} +34 -35
  523. package/dist/esm/index.js +2 -2
  524. package/dist/esm/{isValid-Bee0Uvqc.js → isValid-wU7S6MI2.js} +1 -1
  525. package/dist/esm/loader.js +3 -3
  526. package/dist/esm/{props-D07GjR4_.js → props-BbxNgEcJ.js} +1 -1
  527. package/dist/esm/{slot-BIG-yees.js → slot-Bt01zQ7-.js} +1 -1
  528. package/dist/esm/table.utils-CtVdlcgI.js +706 -0
  529. package/dist/esm/webcomponents.js +3 -3
  530. package/dist/hydrate/index.js +6573 -3030
  531. package/dist/hydrate/index.mjs +6573 -3030
  532. package/dist/types/components/avatar/avatar.d.ts +20 -20
  533. package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +3 -11
  534. package/dist/types/components/breadcrumb/breadcrumb.d.ts +30 -25
  535. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +1 -12
  536. package/dist/types/components/button/button.d.ts +20 -20
  537. package/dist/types/components/card/card.d.ts +19 -21
  538. package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +2 -12
  539. package/dist/types/components/carousel/carousel.d.ts +22 -29
  540. package/dist/types/components/checkbox/checkbox.d.ts +16 -22
  541. package/dist/types/components/checkbox-group/checkbox-group.d.ts +17 -18
  542. package/dist/types/components/checkgroup/checkgroup.d.ts +1 -13
  543. package/dist/types/components/collapse/collapse.d.ts +26 -22
  544. package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +2 -15
  545. package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +2 -15
  546. package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +2 -15
  547. package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +2 -14
  548. package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +2 -13
  549. package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +2 -13
  550. package/dist/types/components/cookiebar/cookiebar.d.ts +30 -25
  551. package/dist/types/components/datetime-picker/date-picker/date-picker-locale.d.ts +12 -4
  552. package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +57 -11
  553. package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +2 -12
  554. package/dist/types/components/datetime-picker/datetime-picker.d.ts +22 -26
  555. package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +3 -13
  556. package/dist/types/components/divider/divider.d.ts +14 -18
  557. package/dist/types/components/dropdown/dropdown.d.ts +21 -20
  558. package/dist/types/components/footer/footer-category/footer-category.d.ts +2 -15
  559. package/dist/types/components/footer/footer-item/footer-item.d.ts +2 -15
  560. package/dist/types/components/footer/footer-legal/footer-legal.d.ts +1 -15
  561. package/dist/types/components/footer/footer-logo/footer-logo.d.ts +2 -15
  562. package/dist/types/components/footer/footer-social/footer-social.d.ts +4 -17
  563. package/dist/types/components/footer/footer.d.ts +23 -27
  564. package/dist/types/components/header/header-function/header-function.d.ts +9 -13
  565. package/dist/types/components/header/header-link/header-link.d.ts +2 -15
  566. package/dist/types/components/header/header-list/header-list.d.ts +2 -15
  567. package/dist/types/components/header/header-logo/header-logo.d.ts +2 -15
  568. package/dist/types/components/header/header.d.ts +29 -26
  569. package/dist/types/components/icon/icon.d.ts +27 -22
  570. package/dist/types/components/icon/icon.utils.d.ts +1 -1
  571. package/dist/types/components/input/input.d.ts +46 -23
  572. package/dist/types/components/input/input.types.d.ts +18 -0
  573. package/dist/types/components/item/item.d.ts +17 -21
  574. package/dist/types/components/link/link.d.ts +18 -22
  575. package/dist/types/components/list/list.d.ts +16 -20
  576. package/dist/types/components/loading/loading.d.ts +16 -23
  577. package/dist/types/components/magic-button/magic-button.d.ts +17 -25
  578. package/dist/types/components/menu/menu-group/menu-group.d.ts +2 -15
  579. package/dist/types/components/menu/menu-header/menu-header.d.ts +2 -15
  580. package/dist/types/components/menu/menu-info/menu-info.d.ts +1 -14
  581. package/dist/types/components/menu/menu-item/menu-item.d.ts +2 -15
  582. package/dist/types/components/menu/menu-link/menu-link.d.ts +4 -16
  583. package/dist/types/components/menu/menu-list/menu-list.d.ts +2 -15
  584. package/dist/types/components/menu/menu-logo/menu-logo.d.ts +1 -14
  585. package/dist/types/components/menu/menu-social/menu-social.d.ts +4 -18
  586. package/dist/types/components/menu/menu.d.ts +25 -32
  587. package/dist/types/components/message/message.d.ts +21 -24
  588. package/dist/types/components/modal/modal.d.ts +18 -21
  589. package/dist/types/components/notification/notification-body/notification-body.d.ts +2 -12
  590. package/dist/types/components/notification/notification-header/notification-header.d.ts +2 -13
  591. package/dist/types/components/notification/notification-item/notification-item.d.ts +2 -15
  592. package/dist/types/components/notification/notification.d.ts +18 -27
  593. package/dist/types/components/pagination/pagination.d.ts +13 -21
  594. package/dist/types/components/radio/radio.d.ts +15 -18
  595. package/dist/types/components/radio-group/radio-group.d.ts +18 -18
  596. package/dist/types/components/scrim/scrim.d.ts +12 -15
  597. package/dist/types/components/select/select-input/select-input.d.ts +12 -14
  598. package/dist/types/components/select/select-list/select-list.d.ts +13 -12
  599. package/dist/types/components/select/select-option/select-option.d.ts +8 -11
  600. package/dist/types/components/select/select.d.ts +42 -94
  601. package/dist/types/components/sign-in/sign-in.d.ts +11 -15
  602. package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +7 -3
  603. package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +4 -14
  604. package/dist/types/components/skip-link/skip-link.d.ts +17 -23
  605. package/dist/types/components/slider/slider.d.ts +18 -28
  606. package/dist/types/components/step/step-item/step-item.d.ts +2 -12
  607. package/dist/types/components/step/step.d.ts +15 -24
  608. package/dist/types/components/switch/switch.d.ts +14 -18
  609. package/dist/types/components/tab/tab-item/tab-item.d.ts +6 -16
  610. package/dist/types/components/tab/tab.d.ts +20 -27
  611. package/dist/types/components/table/table-action/table-action.d.ts +107 -0
  612. package/dist/types/components/table/table-bar/table-bar.d.ts +193 -0
  613. package/dist/types/components/table/table-body/table-body.d.ts +10 -25
  614. package/dist/types/components/table/table-cell/table-cell.d.ts +177 -46
  615. package/dist/types/components/table/table-footer/table-footer.d.ts +40 -0
  616. package/dist/types/components/table/table-footer/table-footer.types.d.ts +12 -0
  617. package/dist/types/components/table/table-header/table-header.d.ts +9 -25
  618. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +101 -62
  619. package/dist/types/components/table/table-row/table-row.d.ts +87 -38
  620. package/dist/types/components/table/table.actions-tooltip.d.ts +11 -0
  621. package/dist/types/components/table/{table-constants.d.ts → table.constants.d.ts} +50 -77
  622. package/dist/types/components/table/table.d.ts +601 -229
  623. package/dist/types/components/table/table.data.d.ts +78 -0
  624. package/dist/types/components/table/table.expansion.d.ts +65 -0
  625. package/dist/types/components/table/table.expansion.elements.d.ts +30 -0
  626. package/dist/types/components/table/table.grouping.d.ts +25 -0
  627. package/dist/types/components/table/table.header-height.d.ts +17 -0
  628. package/dist/types/components/table/table.keyboard.d.ts +53 -0
  629. package/dist/types/components/table/table.scroll-shadows.d.ts +11 -0
  630. package/dist/types/components/table/table.selection.d.ts +84 -0
  631. package/dist/types/components/table/table.selection.elements.d.ts +42 -0
  632. package/dist/types/components/table/table.tokens.d.ts +24 -0
  633. package/dist/types/components/table/table.types.d.ts +199 -0
  634. package/dist/types/components/table/table.utils.d.ts +52 -0
  635. package/dist/types/components/table/table.virtual-list.d.ts +96 -0
  636. package/dist/types/components/tag/tag.d.ts +15 -24
  637. package/dist/types/components/textarea/textarea.d.ts +13 -21
  638. package/dist/types/components/tooltip/tooltip.d.ts +12 -18
  639. package/dist/types/components/upload/upload.d.ts +20 -27
  640. package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +2 -12
  641. package/dist/types/components/wizard/wizard.d.ts +21 -25
  642. package/dist/types/components.d.ts +4646 -5087
  643. package/dist/webcomponents/index.esm.js +1 -1
  644. package/dist/webcomponents/{p-6f1a4fbe.entry.js → p-07e80bf8.entry.js} +1 -1
  645. package/dist/webcomponents/p-10d81622.entry.js +5 -0
  646. package/dist/webcomponents/p-12d5f533.entry.js +5 -0
  647. package/dist/webcomponents/p-15699e8a.entry.js +5 -0
  648. package/dist/webcomponents/{p-7fda8b89.entry.js → p-15e2f5cc.entry.js} +1 -1
  649. package/dist/webcomponents/{p-198aa844.entry.js → p-16d27d5c.entry.js} +1 -1
  650. package/dist/webcomponents/p-18d3fab8.entry.js +5 -0
  651. package/dist/webcomponents/{p-DDc4sADe.js → p-1l4_-FEJ.js} +1 -1
  652. package/dist/webcomponents/p-23c916d9.entry.js +5 -0
  653. package/dist/webcomponents/p-2aee69fd.entry.js +5 -0
  654. package/dist/webcomponents/p-2d3db296.entry.js +5 -0
  655. package/dist/webcomponents/p-2ed6afdd.entry.js +5 -0
  656. package/dist/webcomponents/{p-42b60169.entry.js → p-30c865e6.entry.js} +1 -1
  657. package/dist/webcomponents/p-32afb78c.entry.js +5 -0
  658. package/dist/webcomponents/p-33d24cbd.entry.js +5 -0
  659. package/dist/webcomponents/p-35d63edd.entry.js +5 -0
  660. package/dist/webcomponents/p-3b1ff55e.entry.js +5 -0
  661. package/dist/webcomponents/p-3c7246cf.entry.js +5 -0
  662. package/dist/webcomponents/{p-6a293be8.entry.js → p-407e7b69.entry.js} +1 -1
  663. package/dist/webcomponents/p-41b12e3c.entry.js +5 -0
  664. package/dist/webcomponents/p-47adc17f.entry.js +5 -0
  665. package/dist/webcomponents/{p-18cf093a.entry.js → p-48fc8e56.entry.js} +1 -1
  666. package/dist/webcomponents/p-4a44c8b8.entry.js +5 -0
  667. package/dist/webcomponents/{p-ac68355e.entry.js → p-4b0f3701.entry.js} +1 -1
  668. package/dist/webcomponents/p-4b66200c.entry.js +5 -0
  669. package/dist/webcomponents/{p-5a7c2031.entry.js → p-4c0a1c05.entry.js} +1 -1
  670. package/dist/webcomponents/p-4c72d706.entry.js +5 -0
  671. package/dist/webcomponents/p-505173e0.entry.js +5 -0
  672. package/dist/webcomponents/p-50caea68.entry.js +5 -0
  673. package/dist/webcomponents/p-5419fd2c.entry.js +5 -0
  674. package/dist/webcomponents/{p-20477061.entry.js → p-5693e0e7.entry.js} +1 -1
  675. package/dist/webcomponents/p-58247764.entry.js +5 -0
  676. package/dist/webcomponents/p-5d0f4851.entry.js +5 -0
  677. package/dist/webcomponents/p-60c949c8.entry.js +5 -0
  678. package/dist/webcomponents/p-61b84035.entry.js +5 -0
  679. package/dist/webcomponents/p-62a74e0a.entry.js +5 -0
  680. package/dist/webcomponents/p-6450913e.entry.js +5 -0
  681. package/dist/webcomponents/p-66c8b8d9.entry.js +5 -0
  682. package/dist/webcomponents/{p-b55425b7.entry.js → p-67281ef1.entry.js} +1 -1
  683. package/dist/webcomponents/{p-0fc112fc.entry.js → p-6e128c7a.entry.js} +1 -1
  684. package/dist/webcomponents/p-725e92ab.entry.js +5 -0
  685. package/dist/webcomponents/{p-09c79c1d.entry.js → p-74726f20.entry.js} +1 -1
  686. package/dist/webcomponents/p-75bd655b.entry.js +5 -0
  687. package/dist/webcomponents/p-7bf78e48.entry.js +5 -0
  688. package/dist/webcomponents/p-7cc28ecf.entry.js +5 -0
  689. package/dist/webcomponents/p-7ec01a99.entry.js +5 -0
  690. package/dist/webcomponents/{p-2c8595d3.entry.js → p-7f17dbca.entry.js} +1 -1
  691. package/dist/webcomponents/p-8120f3ce.entry.js +5 -0
  692. package/dist/webcomponents/p-8ded7870.entry.js +5 -0
  693. package/dist/webcomponents/p-9ab989d1.entry.js +5 -0
  694. package/dist/webcomponents/p-9be642ff.entry.js +5 -0
  695. package/dist/webcomponents/p-9d41995a.entry.js +5 -0
  696. package/dist/webcomponents/p-C_DC6oQW.js +16 -0
  697. package/dist/webcomponents/{p-EbtQZm5s.js → p-CjVabz-h.js} +1 -1
  698. package/dist/webcomponents/{p-fOJu6uZR.js → p-CpE_G6IZ.js} +1 -1
  699. package/dist/webcomponents/{p-ConyRdJe.js → p-CwL52661.js} +2 -2
  700. package/dist/webcomponents/p-DnwERaeQ.js +5 -0
  701. package/dist/webcomponents/p-Zk91ebVT.js +5 -0
  702. package/dist/webcomponents/p-_BMaB_68.js +5 -0
  703. package/dist/webcomponents/p-a150b61d.entry.js +5 -0
  704. package/dist/webcomponents/p-a264acf6.entry.js +5 -0
  705. package/dist/webcomponents/p-a5616523.entry.js +5 -0
  706. package/dist/webcomponents/p-ae3dfb9c.entry.js +5 -0
  707. package/dist/webcomponents/p-b1aeb805.entry.js +5 -0
  708. package/dist/webcomponents/p-b8eea3ef.entry.js +5 -0
  709. package/dist/webcomponents/p-c6952f8d.entry.js +5 -0
  710. package/dist/webcomponents/p-c743e5c5.entry.js +5 -0
  711. package/dist/webcomponents/p-d0c659c3.entry.js +5 -0
  712. package/dist/webcomponents/p-d3dec923.entry.js +5 -0
  713. package/dist/webcomponents/{p-31a4694a.entry.js → p-d5405bbe.entry.js} +1 -1
  714. package/dist/webcomponents/{p-794b701b.entry.js → p-d6d3a552.entry.js} +1 -1
  715. package/dist/webcomponents/p-dab66328.entry.js +5 -0
  716. package/dist/webcomponents/{p-8116ee93.entry.js → p-db02533d.entry.js} +1 -1
  717. package/dist/webcomponents/p-dda22999.entry.js +5 -0
  718. package/dist/webcomponents/p-e2a46f44.entry.js +5 -0
  719. package/dist/webcomponents/{p-67774920.entry.js → p-e3680ff8.entry.js} +1 -1
  720. package/dist/webcomponents/p-e5b9652d.entry.js +5 -0
  721. package/dist/webcomponents/{p-fb76b1e0.entry.js → p-e7f02302.entry.js} +1 -1
  722. package/dist/webcomponents/p-f0720e23.entry.js +5 -0
  723. package/dist/webcomponents/p-f244009d.entry.js +5 -0
  724. package/dist/webcomponents/p-f32c40ee.entry.js +5 -0
  725. package/dist/webcomponents/p-f697abbd.entry.js +5 -0
  726. package/dist/webcomponents/p-f7ed35ef.entry.js +5 -0
  727. package/dist/webcomponents/p-f8576e0a.entry.js +5 -0
  728. package/dist/webcomponents/p-fcc62731.entry.js +5 -0
  729. package/dist/webcomponents/webcomponents.esm.js +1 -1
  730. package/package.json +1 -1
  731. package/dist/cjs/br-dropdown_2.cjs.entry.js +0 -2299
  732. package/dist/cjs/br-input.cjs.entry.js +0 -715
  733. package/dist/cjs/br-loading.cjs.entry.js +0 -567
  734. package/dist/cjs/br-pagination.cjs.entry.js +0 -916
  735. package/dist/cjs/br-table-cell.cjs.entry.js +0 -201
  736. package/dist/cjs/br-table-header-cell.cjs.entry.js +0 -189
  737. package/dist/cjs/br-table-row.cjs.entry.js +0 -95
  738. package/dist/cjs/table-constants-BOPSay0B.js +0 -183
  739. package/dist/collection/components/table/table-tokens.js +0 -50
  740. package/dist/collection/components/table/table-utils.js +0 -44
  741. package/dist/collection/pages/components/select/remote.js +0 -33
  742. package/dist/collection/pages/components/select/virtualized.js +0 -13
  743. package/dist/components/p-5h-W9_JR.js +0 -5
  744. package/dist/components/p-848QkYoM.js +0 -5
  745. package/dist/components/p-BFHvuEnN.js +0 -5
  746. package/dist/components/p-BH6QYnAr.js +0 -5
  747. package/dist/components/p-BcW8O6h2.js +0 -5
  748. package/dist/components/p-BicHMcSS.js +0 -5
  749. package/dist/components/p-Bs7iRQTG.js +0 -5
  750. package/dist/components/p-Bvrw9yWR.js +0 -5
  751. package/dist/components/p-BzQFMh9j.js +0 -5
  752. package/dist/components/p-CBHd0-fF.js +0 -5
  753. package/dist/components/p-CCPHCJjw.js +0 -5
  754. package/dist/components/p-CXMwM9m4.js +0 -5
  755. package/dist/components/p-CeNELttN.js +0 -5
  756. package/dist/components/p-CjtmJTLO.js +0 -5
  757. package/dist/components/p-D3usVJE2.js +0 -16
  758. package/dist/components/p-DDu3JV_r.js +0 -5
  759. package/dist/components/p-DFWqyfUe.js +0 -5
  760. package/dist/components/p-DL6xuxGG.js +0 -5
  761. package/dist/components/p-DOX9Uwk1.js +0 -5
  762. package/dist/components/p-DUq7uT2-.js +0 -5
  763. package/dist/components/p-Devw08cc.js +0 -5
  764. package/dist/components/p-Di96UxvH.js +0 -5
  765. package/dist/components/p-DiLI514I.js +0 -5
  766. package/dist/components/p-Dp3MsSXu.js +0 -5
  767. package/dist/components/p-DuLHFTpa.js +0 -5
  768. package/dist/components/p-DusornQ0.js +0 -5
  769. package/dist/components/p-OQpiDEK9.js +0 -5
  770. package/dist/components/p-XW6Hp_Jk.js +0 -5
  771. package/dist/esm/br-dropdown_2.entry.js +0 -2296
  772. package/dist/esm/br-input.entry.js +0 -713
  773. package/dist/esm/br-loading.entry.js +0 -565
  774. package/dist/esm/br-pagination.entry.js +0 -914
  775. package/dist/esm/br-table-cell.entry.js +0 -199
  776. package/dist/esm/br-table-header-cell.entry.js +0 -187
  777. package/dist/esm/br-table-row.entry.js +0 -93
  778. package/dist/esm/table-constants-CXMwM9m4.js +0 -170
  779. package/dist/types/components/table/table-tokens.d.ts +0 -46
  780. package/dist/types/components/table/table-types.d.ts +0 -107
  781. package/dist/types/components/table/table-utils.d.ts +0 -47
  782. package/dist/webcomponents/p-01801ac1.entry.js +0 -5
  783. package/dist/webcomponents/p-05b459f2.entry.js +0 -5
  784. package/dist/webcomponents/p-08ac6f09.entry.js +0 -5
  785. package/dist/webcomponents/p-09817344.entry.js +0 -5
  786. package/dist/webcomponents/p-13babfc4.entry.js +0 -5
  787. package/dist/webcomponents/p-15022ab7.entry.js +0 -5
  788. package/dist/webcomponents/p-172d42c2.entry.js +0 -5
  789. package/dist/webcomponents/p-1ba60d13.entry.js +0 -5
  790. package/dist/webcomponents/p-1bb96641.entry.js +0 -5
  791. package/dist/webcomponents/p-21feda62.entry.js +0 -5
  792. package/dist/webcomponents/p-23a5cfd7.entry.js +0 -5
  793. package/dist/webcomponents/p-32ea6342.entry.js +0 -5
  794. package/dist/webcomponents/p-3658adcf.entry.js +0 -5
  795. package/dist/webcomponents/p-37914e63.entry.js +0 -5
  796. package/dist/webcomponents/p-3b0dd0ff.entry.js +0 -5
  797. package/dist/webcomponents/p-42c9c6c5.entry.js +0 -5
  798. package/dist/webcomponents/p-473561f2.entry.js +0 -5
  799. package/dist/webcomponents/p-47c490ef.entry.js +0 -5
  800. package/dist/webcomponents/p-4b01c60f.entry.js +0 -5
  801. package/dist/webcomponents/p-5a5ed7d8.entry.js +0 -5
  802. package/dist/webcomponents/p-609cf652.entry.js +0 -5
  803. package/dist/webcomponents/p-614683d9.entry.js +0 -5
  804. package/dist/webcomponents/p-67605757.entry.js +0 -5
  805. package/dist/webcomponents/p-67d62559.entry.js +0 -5
  806. package/dist/webcomponents/p-695dbeb0.entry.js +0 -5
  807. package/dist/webcomponents/p-7352d459.entry.js +0 -5
  808. package/dist/webcomponents/p-745213f7.entry.js +0 -5
  809. package/dist/webcomponents/p-7ee564a1.entry.js +0 -5
  810. package/dist/webcomponents/p-821341dc.entry.js +0 -5
  811. package/dist/webcomponents/p-8aa6f07c.entry.js +0 -5
  812. package/dist/webcomponents/p-8ddf3ce3.entry.js +0 -5
  813. package/dist/webcomponents/p-95f3c44a.entry.js +0 -5
  814. package/dist/webcomponents/p-96dbb585.entry.js +0 -5
  815. package/dist/webcomponents/p-9815ab95.entry.js +0 -5
  816. package/dist/webcomponents/p-9e0324a7.entry.js +0 -5
  817. package/dist/webcomponents/p-CJipT0in.js +0 -5
  818. package/dist/webcomponents/p-CXMwM9m4.js +0 -5
  819. package/dist/webcomponents/p-D3usVJE2.js +0 -16
  820. package/dist/webcomponents/p-a038be16.entry.js +0 -5
  821. package/dist/webcomponents/p-a32d17cb.entry.js +0 -5
  822. package/dist/webcomponents/p-a46f068e.entry.js +0 -5
  823. package/dist/webcomponents/p-a89b684d.entry.js +0 -5
  824. package/dist/webcomponents/p-af888d13.entry.js +0 -5
  825. package/dist/webcomponents/p-b0124459.entry.js +0 -5
  826. package/dist/webcomponents/p-b063c12f.entry.js +0 -5
  827. package/dist/webcomponents/p-b07bfdc5.entry.js +0 -5
  828. package/dist/webcomponents/p-b5d25332.entry.js +0 -5
  829. package/dist/webcomponents/p-b609b464.entry.js +0 -5
  830. package/dist/webcomponents/p-b66ab52d.entry.js +0 -5
  831. package/dist/webcomponents/p-b8d4ace3.entry.js +0 -5
  832. package/dist/webcomponents/p-c717c745.entry.js +0 -5
  833. package/dist/webcomponents/p-ce3d689c.entry.js +0 -5
  834. package/dist/webcomponents/p-d08b6266.entry.js +0 -5
  835. package/dist/webcomponents/p-d6165aa0.entry.js +0 -5
  836. package/dist/webcomponents/p-dacb7e2c.entry.js +0 -5
  837. package/dist/webcomponents/p-db309a11.entry.js +0 -5
  838. package/dist/webcomponents/p-dc23cb2e.entry.js +0 -5
  839. package/dist/webcomponents/p-e241caf3.entry.js +0 -5
  840. package/dist/webcomponents/p-e661c024.entry.js +0 -5
  841. package/dist/webcomponents/p-e7107869.entry.js +0 -5
  842. package/dist/webcomponents/p-eb94199d.entry.js +0 -5
  843. package/dist/webcomponents/p-f8993ae4.entry.js +0 -5
  844. package/dist/webcomponents/p-f99d8c9c.entry.js +0 -5
  845. package/dist/webcomponents/p-fdcb54a3.entry.js +0 -5
  846. package/dist/webcomponents/p-fed02286.entry.js +0 -5
  847. /package/dist/collection/components/table/{table-types.js → table-footer/table-footer.types.js} +0 -0
  848. /package/dist/components/{p-5z6jgH1D.js → p-BNckUhK6.js} +0 -0
  849. /package/dist/webcomponents/{p-BIG-yees.js → p-Bt01zQ7-.js} +0 -0
  850. /package/dist/webcomponents/{p-zlORkiHQ.js → p-CXDYKUBz.js} +0 -0
@@ -0,0 +1,1493 @@
1
+ /*!
2
+ * Construído por SERPRO
3
+ * © https://serpro.gov.br/ - MIT License.
4
+ */
5
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, F as Fragment } from './index-CwL52661.js';
6
+ import { F as TABLE_DENSITY, y as resolveTableDensityFromElement, M as TABLE_TOOLTIP_MODE, N as requestAnimationFramePromise, O as TableCellKeyboard, s as TABLE_TOOLTIP_STATE, w as TABLE_SORT_DIRECTION, r as resolveTableSpan, j as TABLE_ROW_EXPANSION, u as TableScrollShadows } from './table.utils-CtVdlcgI.js';
7
+ import { a as BreakpointObserver, B as BREAKPOINTS } from './breakpoint-observer-DBmwzG9E.js';
8
+ import { r as restoreFocus } from './focus-CNwZRgyL.js';
9
+
10
+ const tableActionCss = () => `*,*::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}:host{display:inline-flex;align-items:center}:host-context(br-table-cell) .br-table-action{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--table-row-size);height:var(--table-row-size);overflow:visible}:host-context(br-table-cell) br-button{position:absolute;inset:50% auto auto 50%;transform:translate(-50%, -50%)}:host-context(br-table-row[data-selected]) br-button::part(button),:host-context(br-table-row[data-selected]) br-button::part(button):hover,:host-context(br-table-row[data-selected]) br-button::part(button):focus,:host-context(br-table-row[data-selected]) br-button::part(button):active{color:var(--pure-0)}:host-context(br-table-row[data-selected]) br-icon::part(icon){color:var(--pure-0)}`;
11
+
12
+ const TableAction = class {
13
+ constructor(hostRef) {
14
+ registerInstance(this, hostRef);
15
+ this.brTableActionClick = createEvent(this, "brTableActionClick", 7);
16
+ this.fallbackAriaLabel = 'Ação';
17
+ /**
18
+ * Texto visível e identificação semântica da ação.
19
+ *
20
+ * @default null
21
+ */
22
+ this.label = null;
23
+ /**
24
+ * Nome do ícone exibido pelo botão.
25
+ *
26
+ * @default null
27
+ */
28
+ this.iconName = null;
29
+ /**
30
+ * Rótulo acessível. Quando omitido, utiliza `label`.
31
+ *
32
+ * @default null
33
+ */
34
+ this.ariaLabel = null;
35
+ this.buttonDensity = TABLE_DENSITY.MEDIUM;
36
+ this.buttonDisabled = false;
37
+ this.stateObserver = null;
38
+ this.syncButtonState = () => {
39
+ const nextDensity = this.density ?? resolveTableDensityFromElement(this.getDensitySource());
40
+ if (this.buttonDensity !== nextDensity)
41
+ this.buttonDensity = nextDensity;
42
+ this.buttonDisabled = this.el.closest('br-table-row')?.hasAttribute('disabled') ?? false;
43
+ };
44
+ /**
45
+ * Interrompe o clique nativo e publica o evento normalizado da tabela.
46
+ */
47
+ this.handleActionClick = (event) => {
48
+ if (this.buttonDisabled)
49
+ return;
50
+ event.preventDefault();
51
+ event.stopImmediatePropagation();
52
+ event.stopPropagation();
53
+ this.brTableActionClick.emit({
54
+ type: this.getActionType(),
55
+ label: this.label || '',
56
+ });
57
+ };
58
+ }
59
+ connectedCallback() {
60
+ this.syncButtonState();
61
+ this.observeStateSources();
62
+ }
63
+ componentWillLoad() {
64
+ if (!this.ariaLabel?.trim() && !this.label?.trim()) {
65
+ // eslint-disable-next-line no-console
66
+ console.warn('br-table-action: acessibilidade inválida — nem `label` nem `aria-label` foram encontrados. Aplicando rótulo acessível padrão.', this.el);
67
+ // eslint-disable-next-line no-console
68
+ console.warn(`br-table-action: aplicando rótulo acessível padrão "${this.fallbackAriaLabel}".`);
69
+ }
70
+ }
71
+ componentDidLoad() {
72
+ this.syncButtonState();
73
+ }
74
+ handleDensityChange() {
75
+ this.syncButtonState();
76
+ if (this.el.isConnected)
77
+ this.observeStateSources();
78
+ }
79
+ disconnectedCallback() {
80
+ this.stateObserver?.disconnect();
81
+ this.stateObserver = null;
82
+ }
83
+ /**
84
+ * Informa se a ação pertence a uma célula de dados.
85
+ */
86
+ isInsideTableCell() {
87
+ return this.el.closest('br-table-cell') !== null;
88
+ }
89
+ getDensitySource() {
90
+ return this.el.closest('br-table-cell, br-table-header-cell');
91
+ }
92
+ observeStateSources() {
93
+ this.stateObserver?.disconnect();
94
+ this.stateObserver = null;
95
+ const row = this.el.closest('br-table-row');
96
+ const managedDensity = this.density !== undefined || this.el.closest('br-table') !== null;
97
+ if (managedDensity && row === null)
98
+ return;
99
+ this.stateObserver = new MutationObserver(this.syncButtonState);
100
+ if (managedDensity) {
101
+ if (row !== null) {
102
+ this.stateObserver.observe(row, { attributes: true, attributeFilter: ['disabled'] });
103
+ }
104
+ return;
105
+ }
106
+ const stateSources = [this.getDensitySource(), row];
107
+ stateSources
108
+ .filter((element) => element !== null)
109
+ .forEach((element) => {
110
+ this.stateObserver?.observe(element, {
111
+ attributes: true,
112
+ attributeFilter: ['style', 'class', 'density', 'disabled'],
113
+ });
114
+ });
115
+ }
116
+ /**
117
+ * Resolve o contexto da ação a partir do slot e da posição na tabela.
118
+ */
119
+ getActionType() {
120
+ const slotName = this.el.getAttribute('slot');
121
+ if (slotName === 'global-actions') {
122
+ return 'global';
123
+ }
124
+ if (slotName === 'contextual-actions') {
125
+ return 'contextual';
126
+ }
127
+ return 'row';
128
+ }
129
+ /**
130
+ * Define o formato visual adequado ao contexto da ação.
131
+ */
132
+ getButtonShape() {
133
+ const slotName = this.el.getAttribute('slot');
134
+ if (slotName === 'global-actions' || this.isInsideTableCell()) {
135
+ return 'circle';
136
+ }
137
+ return 'pill';
138
+ }
139
+ /**
140
+ * Define a ênfase visual adequada ao contexto da ação.
141
+ */
142
+ getButtonEmphasis() {
143
+ const slotName = this.el.getAttribute('slot');
144
+ if (slotName === 'contextual-actions') {
145
+ return 'primary';
146
+ }
147
+ return 'tertiary';
148
+ }
149
+ /**
150
+ * Resolve o melhor texto disponível para tecnologias assistivas.
151
+ */
152
+ getButtonAriaLabel() {
153
+ return this.ariaLabel?.trim() || this.label?.trim() || this.fallbackAriaLabel;
154
+ }
155
+ getTooltipLabel() {
156
+ return this.label?.trim() || this.ariaLabel?.trim() || this.fallbackAriaLabel;
157
+ }
158
+ /**
159
+ * Renderiza o botão compartilhado pelas variações circular e pill.
160
+ */
161
+ renderActionButton(shape, slotName) {
162
+ return (h("br-button", { slot: slotName, density: this.buttonDensity, emphasis: this.getButtonEmphasis(), shape: shape, disabled: this.buttonDisabled, "prop:ariaLabel": this.getButtonAriaLabel(), onClick: this.handleActionClick }, this.iconName && h("br-icon", { "prop:iconName": this.iconName }), shape !== 'circle' && h("span", null, this.label)));
163
+ }
164
+ /**
165
+ * Renderiza a ação e adiciona tooltip quando o botão é circular.
166
+ */
167
+ render() {
168
+ const shape = this.getButtonShape();
169
+ return (h(Host, { key: 'af0b9c1f7a610cb6a79bd059ab9abc9461ce585d' }, h("div", { key: '9f82c3fbc30a3135f6ec9b2c520c60805c416ac6', class: "br-table-action" }, shape === 'circle' ? (h("br-tooltip", { hideDelay: 3000 }, this.renderActionButton(shape, 'trigger'), h("span", { slot: "content" }, this.getTooltipLabel()))) : (this.renderActionButton(shape)))));
170
+ }
171
+ static get delegatesFocus() { return true; }
172
+ get el() { return getElement(this); }
173
+ static get watchers() { return {
174
+ "density": [{
175
+ "handleDensityChange": 0
176
+ }]
177
+ }; }
178
+ };
179
+ TableAction.style = tableActionCss();
180
+
181
+ /**
182
+ * Coordena a dica do trigger com o menu de ações das barras e células.
183
+ */
184
+ class TableActionsTooltip {
185
+ constructor() {
186
+ this.revision = 0;
187
+ this.show = async () => {
188
+ const { dropdown, trigger, tooltip } = this;
189
+ if (!trigger?.isConnected || !tooltip?.isConnected || dropdown?.isOpen)
190
+ return;
191
+ const revision = ++this.revision;
192
+ await tooltip.setTriggerElement(trigger);
193
+ if (revision !== this.revision || !trigger.isConnected || !tooltip.isConnected || dropdown?.isOpen)
194
+ return;
195
+ await tooltip.showTooltip();
196
+ };
197
+ this.hide = async () => {
198
+ const revision = ++this.revision;
199
+ const tooltip = this.tooltip;
200
+ if (!tooltip?.isConnected)
201
+ return;
202
+ // Remove também os listeners de hover registrados por setTriggerElement.
203
+ await tooltip.setTriggerElement(null);
204
+ if (revision !== this.revision || !tooltip.isConnected)
205
+ return;
206
+ await tooltip.hideTooltip();
207
+ };
208
+ }
209
+ }
210
+
211
+ const tableBarCss = () => `*,*::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}:host{display:block}.br-table-bar{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.heading-bar,.contextual-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--br-table-bar-padding)}.heading-bar.search-open{position:relative;z-index:1;background:var(--background)}.search-bar{display:flex;align-items:center;width:100%;gap:var(--spacing-scale-base)}.search-bar br-input{flex:1 1 auto;min-width:0;margin-bottom:0}.contextual-bar{color:var(--pure-0);background-color:var(--interactive)}.heading,.selection-count{display:inline-block;font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--table-row-size)}.heading{color:var(--interactive)}.global-actions,.contextual-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-scale-base);flex-wrap:wrap}.actions-slot-container{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-scale-base);flex-wrap:wrap}.actions-slot-container slot::slotted(br-table-action){display:inline-flex}.actions-slot-container.is-hidden{display:none}.global-actions br-dropdown::part(target),.contextual-actions br-dropdown::part(target),.global-actions br-dropdown>br-list[slot=target],.contextual-actions br-dropdown>br-list[slot=target]{background-color:var(--background)}.selection-count{font-size:var(--font-size-scale-base)}`;
212
+
213
+ const TableBar = class {
214
+ constructor(hostRef) {
215
+ registerInstance(this, hostRef);
216
+ this.brTableSearch = createEvent(this, "brTableSearch", 7);
217
+ /**
218
+ * Título apresentado na barra principal.
219
+ *
220
+ * @default ''
221
+ */
222
+ this.heading = '';
223
+ /**
224
+ * Limite usado para decidir quando agrupar ações em um menu. Quando o
225
+ * número de ações excede esse valor, as ações são agrupadas no dropdown
226
+ * (atualmente todas são movidas para o menu colapsado).
227
+ *
228
+ * @default 4
229
+ */
230
+ this.headingActionsLimit = 4;
231
+ /**
232
+ * Limite usado para decidir quando agrupar ações contextuais em um menu.
233
+ * Quando o número de ações excede esse valor, as ações são agrupadas no
234
+ * dropdown (atualmente todas são movidas para o menu colapsado).
235
+ *
236
+ * @default 4
237
+ */
238
+ this.contextualActionsLimit = 4;
239
+ /**
240
+ * Força a apresentação da barra contextual mesmo sem seleção.
241
+ *
242
+ * @default false
243
+ */
244
+ this.showContextualBar = false;
245
+ /**
246
+ * Número de linhas atualmente selecionadas.
247
+ *
248
+ * @default 0
249
+ */
250
+ this.selectedRowsCount = 0;
251
+ /**
252
+ * Indica se o slot de ações globais possui conteúdo.
253
+ *
254
+ * @default false
255
+ */
256
+ this.hasGlobalActionsContent = false;
257
+ /**
258
+ * Indica se o slot de ações contextuais possui conteúdo.
259
+ *
260
+ * @default false
261
+ */
262
+ this.hasContextualActionsContent = false;
263
+ /**
264
+ * Disponibiliza a interface de busca controlada pela aplicação.
265
+ *
266
+ * @default false
267
+ */
268
+ this.hasSearch = false;
269
+ this.globalActions = [];
270
+ this.contextualActions = [];
271
+ this.currentBreakpoint = null;
272
+ this.searchOpen = false;
273
+ this.searchTerm = '';
274
+ this.effectiveDensity = TABLE_DENSITY.MEDIUM;
275
+ /** @internal Texto recebido por atributo interno do `br-table`. */
276
+ this.headingActionsTooltipLabel = 'Mais ações';
277
+ /** @internal Texto recebido por atributo interno do `br-table`. */
278
+ this.contextualActionsTooltipLabel = 'Mais ações';
279
+ this.breakpointObserver = null;
280
+ this.globalActionsSlotRef = null;
281
+ this.contextualActionsSlotRef = null;
282
+ this.searchButtonRef = null;
283
+ this.shouldRestoreSearchFocus = false;
284
+ this.actionsTooltips = {
285
+ global: new TableActionsTooltip(),
286
+ contextual: new TableActionsTooltip(),
287
+ };
288
+ this.densityObserver = null;
289
+ this.internalTooltipLabelsObserver = null;
290
+ /**
291
+ * Mantém o breakpoint atual disponível para as decisões de renderização.
292
+ */
293
+ this.handleBreakpointChange = (breakpoint) => {
294
+ this.currentBreakpoint = breakpoint;
295
+ };
296
+ /**
297
+ * Atualiza a lista de ações globais após mudanças no slot.
298
+ */
299
+ this.handleGlobalActionsSlotChange = () => {
300
+ this.syncGlobalActions();
301
+ };
302
+ /**
303
+ * Atualiza a lista de ações contextuais após mudanças no slot.
304
+ */
305
+ this.handleContextualActionsSlotChange = () => {
306
+ this.syncContextualActions();
307
+ };
308
+ this.syncEffectiveDensity = () => {
309
+ const nextDensity = this.density ?? resolveTableDensityFromElement(this.el);
310
+ if (this.effectiveDensity !== nextDensity) {
311
+ this.effectiveDensity = nextDensity;
312
+ }
313
+ this.applyDensityToAssignedActions(nextDensity);
314
+ };
315
+ /** Sincroniza as labels internas recebidas do `br-table`. */
316
+ this.syncInternalTooltipLabels = () => {
317
+ this.headingActionsTooltipLabel =
318
+ this.el.getAttribute('data-br-table-heading-actions-tooltip-label')?.trim() || 'Mais ações';
319
+ this.contextualActionsTooltipLabel =
320
+ this.el.getAttribute('data-br-table-contextual-actions-tooltip-label')?.trim() || 'Mais ações';
321
+ };
322
+ this.openSearch = () => {
323
+ this.searchOpen = true;
324
+ };
325
+ this.closeSearch = () => {
326
+ this.shouldRestoreSearchFocus = true;
327
+ this.searchOpen = false;
328
+ this.searchTerm = '';
329
+ this.brTableSearch.emit({ term: '' });
330
+ };
331
+ this.handleSearchInput = (event) => {
332
+ const input = event.target;
333
+ this.searchTerm = input.value ?? '';
334
+ };
335
+ this.submitSearch = (event) => {
336
+ event.preventDefault();
337
+ this.brTableSearch.emit({ term: this.searchTerm });
338
+ };
339
+ }
340
+ /**
341
+ * Inicia a observação responsiva sempre que a barra entra no documento.
342
+ */
343
+ connectedCallback() {
344
+ this.syncInternalTooltipLabels();
345
+ this.observeInternalTooltipLabels();
346
+ if (this.breakpointObserver !== null) {
347
+ return;
348
+ }
349
+ this.breakpointObserver = new BreakpointObserver();
350
+ this.breakpointObserver.subscribe(this.handleBreakpointChange);
351
+ this.observeDensitySource();
352
+ this.syncEffectiveDensity();
353
+ }
354
+ /**
355
+ * Lê as ações atribuídas aos slots após a montagem.
356
+ */
357
+ componentDidLoad() {
358
+ this.syncEffectiveDensity();
359
+ this.syncActionsFromSlots();
360
+ }
361
+ /**
362
+ * Interrompe a observação responsiva quando a barra é removida.
363
+ */
364
+ disconnectedCallback() {
365
+ this.breakpointObserver?.unsubscribe(this.handleBreakpointChange);
366
+ this.breakpointObserver?.destroy();
367
+ this.breakpointObserver = null;
368
+ this.densityObserver?.disconnect();
369
+ this.densityObserver = null;
370
+ this.internalTooltipLabelsObserver?.disconnect();
371
+ this.internalTooltipLabelsObserver = null;
372
+ void this.actionsTooltips.global.hide();
373
+ void this.actionsTooltips.contextual.hide();
374
+ }
375
+ handleDensityChange() {
376
+ this.syncEffectiveDensity();
377
+ if (this.el.isConnected)
378
+ this.observeDensitySource();
379
+ }
380
+ /** Observa alterações nas labels encaminhadas pelo `br-table`. */
381
+ observeInternalTooltipLabels() {
382
+ this.internalTooltipLabelsObserver?.disconnect();
383
+ this.internalTooltipLabelsObserver = new MutationObserver(this.syncInternalTooltipLabels);
384
+ this.internalTooltipLabelsObserver.observe(this.el, {
385
+ attributes: true,
386
+ attributeFilter: [
387
+ 'data-br-table-heading-actions-tooltip-label',
388
+ 'data-br-table-contextual-actions-tooltip-label',
389
+ ],
390
+ });
391
+ }
392
+ getControlDensity() {
393
+ return this.density ?? this.effectiveDensity;
394
+ }
395
+ observeDensitySource() {
396
+ this.densityObserver?.disconnect();
397
+ this.densityObserver = null;
398
+ if (this.density !== undefined)
399
+ return;
400
+ this.densityObserver = new MutationObserver(this.syncEffectiveDensity);
401
+ this.densityObserver.observe(this.el, { attributes: true, attributeFilter: ['style', 'class', 'density'] });
402
+ }
403
+ applyDensityToAssignedActions(density = this.effectiveDensity) {
404
+ [this.globalActionsSlotRef, this.contextualActionsSlotRef].forEach((slotRef) => {
405
+ slotRef
406
+ ?.assignedElements({ flatten: true })
407
+ .filter((element) => element.tagName.toLowerCase() === 'br-table-action')
408
+ .forEach((actionElement) => {
409
+ if (actionElement.getAttribute('density') !== density)
410
+ actionElement.setAttribute('density', density);
411
+ });
412
+ });
413
+ }
414
+ /**
415
+ * Sincroniza simultaneamente os dois grupos de ações.
416
+ */
417
+ syncActionsFromSlots() {
418
+ this.syncGlobalActions();
419
+ this.syncContextualActions();
420
+ }
421
+ /**
422
+ * Extrai as ações globais atualmente atribuídas.
423
+ */
424
+ syncGlobalActions() {
425
+ this.globalActions = this.getActionsFromSlot(this.globalActionsSlotRef);
426
+ }
427
+ /**
428
+ * Extrai as ações contextuais atualmente atribuídas.
429
+ */
430
+ syncContextualActions() {
431
+ this.contextualActions = this.getActionsFromSlot(this.contextualActionsSlotRef);
432
+ }
433
+ /**
434
+ * Converte os elementos atribuídos ao slot em entradas normalizadas.
435
+ */
436
+ getActionsFromSlot(slotRef) {
437
+ if (slotRef === null) {
438
+ return [];
439
+ }
440
+ const assignedElements = slotRef.assignedElements({ flatten: true });
441
+ const density = this.getControlDensity();
442
+ return assignedElements
443
+ .filter((element) => element.tagName.toLowerCase() === 'br-table-action')
444
+ .map((actionElement, index) => {
445
+ if (actionElement.getAttribute('density') !== density)
446
+ actionElement.setAttribute('density', density);
447
+ return {
448
+ actionElement,
449
+ label: this.getActionLabel(actionElement, index),
450
+ };
451
+ });
452
+ }
453
+ /**
454
+ * Obtém um rótulo utilizável, com fallback baseado na posição.
455
+ */
456
+ getActionLabel(actionElement, index) {
457
+ const label = actionElement.getAttribute('label')?.trim() || actionElement.getAttribute('aria-label')?.trim();
458
+ if (label !== undefined && label.length > 0) {
459
+ return label;
460
+ }
461
+ return `Ação ${index + 1}`;
462
+ }
463
+ /**
464
+ * Sanitiza o limite informado para garantir um inteiro positivo.
465
+ */
466
+ getNormalizedActionsLimit(limit) {
467
+ if (!Number.isFinite(limit)) {
468
+ return 4;
469
+ }
470
+ return Math.max(1, Math.floor(limit));
471
+ }
472
+ /**
473
+ * Informa se as ações precisam ser agrupadas em um menu.
474
+ */
475
+ shouldCollapseActions(actions, limit) {
476
+ if (actions.length === 0) {
477
+ return false;
478
+ }
479
+ if (this.currentBreakpoint === BREAKPOINTS.X_SMALL) {
480
+ return true;
481
+ }
482
+ return actions.length > this.getNormalizedActionsLimit(limit);
483
+ }
484
+ /**
485
+ * Cria o detalhe emitido por uma ação selecionada no menu.
486
+ */
487
+ getCollapsedActionDetail(label, context) {
488
+ return {
489
+ type: context,
490
+ label,
491
+ };
492
+ }
493
+ /**
494
+ * Publica o clique de uma ação que foi agrupada no menu.
495
+ */
496
+ handleCollapsedActionClick(event, label, context) {
497
+ event.preventDefault();
498
+ event.stopPropagation();
499
+ this.el.dispatchEvent(new CustomEvent('brTableActionClick', {
500
+ bubbles: true,
501
+ composed: true,
502
+ detail: this.getCollapsedActionDetail(label, context),
503
+ }));
504
+ }
505
+ /**
506
+ * Formata a contagem de seleção com singular ou plural.
507
+ */
508
+ getSelectionCountLabel() {
509
+ const normalizedCount = Math.max(0, this.selectedRowsCount);
510
+ const lineLabel = normalizedCount === 1 ? 'linha selecionada' : 'linhas selecionadas';
511
+ return `${normalizedCount} ${lineLabel}`;
512
+ }
513
+ /**
514
+ * Informa se a barra de título possui conteúdo relevante.
515
+ */
516
+ shouldRenderHeadingBar() {
517
+ return this.hasSearch || this.heading.trim().length > 0 || this.hasGlobalActionsContent;
518
+ }
519
+ handleHasSearchChange() {
520
+ if (this.hasSearch)
521
+ return;
522
+ this.searchOpen = false;
523
+ this.searchTerm = '';
524
+ }
525
+ componentDidRender() {
526
+ if (!this.shouldRestoreSearchFocus)
527
+ return;
528
+ this.shouldRestoreSearchFocus = false;
529
+ restoreFocus(this.searchButtonRef);
530
+ }
531
+ /**
532
+ * Informa se a barra contextual deve ser exibida.
533
+ */
534
+ shouldRenderContextualBar() {
535
+ return this.showContextualBar || this.selectedRowsCount > 0;
536
+ }
537
+ /**
538
+ * Renderiza o menu que contém ações excedentes.
539
+ */
540
+ renderActionsDropdown(actions, context, emphasis) {
541
+ const contextLabel = context === 'global' ? 'globais' : 'contextuais';
542
+ const collapsedActionsTooltipLabel = context === 'global' ? this.headingActionsTooltipLabel : this.contextualActionsTooltipLabel;
543
+ const tooltip = this.actionsTooltips[context];
544
+ return (h(Fragment, null, h("br-dropdown", { placement: "bottom-end", targetZIndex: "var(--z-index-layer-3)", "prop:ariaLabel": `Mais ações ${contextLabel}`, ref: (element) => {
545
+ tooltip.dropdown = element;
546
+ }, onBrDropdownOpenChange: tooltip.hide }, h("br-button", { slot: "trigger", shape: "circle", density: this.getControlDensity(), emphasis: emphasis, "prop:ariaLabel": `Abrir menu de ações ${contextLabel}`, ref: (element) => {
547
+ tooltip.trigger = element;
548
+ }, onPointerEnter: tooltip.show, onPointerLeave: tooltip.hide, onFocus: tooltip.show, onBlur: tooltip.hide, onClick: tooltip.hide }, h("br-icon", { "attr:iconName": "fa-solid:ellipsis-v" })), h("br-list", { slot: "target", "list-title": "A\u00E7\u00F5es", divider: true, style: {
549
+ maxHeight: 'min(180px, 45vh)',
550
+ overflowY: 'auto',
551
+ overscrollBehavior: 'contain',
552
+ } }, actions.map((action) => (h("br-item", { isButton: true, type: "button", density: "small", "data-no-selection": true, onBrDidClick: (event) => this.handleCollapsedActionClick(event, action.label, context) }, action.label))))), h("br-tooltip", { ref: (element) => {
553
+ tooltip.tooltip = element;
554
+ }, hideDelay: 3000 }, h("span", { slot: "content" }, collapsedActionsTooltipLabel))));
555
+ }
556
+ /**
557
+ * Renderiza somente as barras necessárias ao estado atual.
558
+ */
559
+ render() {
560
+ const shouldRenderHeadingBar = this.shouldRenderHeadingBar();
561
+ const shouldRenderContextualBar = this.shouldRenderContextualBar();
562
+ const shouldRenderBar = shouldRenderHeadingBar || shouldRenderContextualBar;
563
+ const shouldCollapseGlobalActions = this.shouldCollapseActions(this.globalActions, this.headingActionsLimit);
564
+ const shouldCollapseContextualActions = this.shouldCollapseActions(this.contextualActions, this.contextualActionsLimit);
565
+ return (h(Host, { key: '609cbb49773d966c7458c7c52e7d1d49979ae514' }, shouldRenderBar && (h("div", { key: '1b5b124c5fb83dd115429f3a08e7b6f51b7c3d10', class: "br-table-bar" }, shouldRenderHeadingBar && (h("div", { key: '8a033a24c1f87c43b9eef06b47505d6410be8bd8', class: { 'heading-bar': true, 'search-open': this.searchOpen } }, !this.searchOpen && h("span", { key: '1c43bb18dd0cad2a511c13862023c69134c21f2a', class: "heading" }, this.heading), !this.searchOpen && (h("div", { key: 'd6ded3597e55eb3f32db5791c7537a9cb602adeb', class: "global-actions" }, this.hasSearch && (h("br-button", { key: 'c521fbadc3a4cb876f10632eaacb9e14cae51191', shape: "circle", density: this.getControlDensity(), emphasis: "tertiary", "prop:ariaLabel": "Buscar na tabela", ref: (element) => (this.searchButtonRef = element), onClick: this.openSearch }, h("br-icon", { key: '4446bb81e8ec331d18ffb3b3f6991fa3af767ab1', "attr:iconName": "fa-solid:search" }))), h("div", { key: '839fbb2a64146120831b52866b0796de0b720003', class: { 'actions-slot-container': true, 'is-hidden': shouldCollapseGlobalActions } }, h("slot", { key: 'e68cf1cd7fffeb7d1c4a223cbb093e5baef449e9', name: "global-actions", ref: (element) => (this.globalActionsSlotRef = element), onSlotchange: this.handleGlobalActionsSlotChange })), shouldCollapseGlobalActions &&
566
+ this.renderActionsDropdown(this.globalActions, 'global', 'tertiary'))), this.searchOpen && (h("form", { key: '0e28c4dfb2ebecf4470761257ec951cad230966e', class: "search-bar", role: "search", "aria-label": "Buscar na tabela", onSubmit: this.submitSearch }, h("br-input", { key: 'da9c78b38097d4c0ea090fbf40c60d6fb72f1bd8', "prop:value": this.searchTerm, "prop:ariaLabel": "Buscar na tabela", placeholder: "Buscar", autofocus: true, onInput: this.handleSearchInput }, h("br-button", { key: 'efc4dd9a0ecb61980a6bfda31db1ca0d23bc5175', slot: "action", type: "submit", density: this.getControlDensity(), "prop:ariaLabel": "Buscar na tabela" }, h("br-icon", { key: 'efbae76e6ed305d26b9e08b31ffefe074865d667', "attr:iconName": "fa-solid:search", "aria-hidden": "true" }))), h("br-button", { key: '29cab47134777b502cde365cd5570b9aced14291', shape: "circle", density: this.getControlDensity(), emphasis: "tertiary", "prop:ariaLabel": "Fechar busca", onClick: this.closeSearch }, h("br-icon", { key: 'de06eee7dc4f16d8ff2030ad3179a22125aa7e8f', "attr:iconName": "fa-solid:times", width: "20", height: "20" })))))), shouldRenderContextualBar && (h("div", { key: '03f62470b61d70e40d5f7f9fec943158f3c80094', class: "contextual-bar" }, h("span", { key: '65dcc90afc7990e9a43ff1a1c8f315cb9c64f27f', class: "selection-count", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.getSelectionCountLabel()), h("div", { key: 'd88c4522216f3866df845c8a9e938bf461499658', class: "contextual-actions" }, h("div", { key: 'fbd6bcbea62a9ab33b22e2a2fc27e146e2664f16', class: { 'actions-slot-container': true, 'is-hidden': shouldCollapseContextualActions } }, h("slot", { key: '72849daf5dd9d95cc5145b51291f4ce106b6dca9', name: "contextual-actions", ref: (element) => (this.contextualActionsSlotRef = element), onSlotchange: this.handleContextualActionsSlotChange })), shouldCollapseContextualActions &&
567
+ this.renderActionsDropdown(this.contextualActions, 'contextual', 'primary'))))))));
568
+ }
569
+ get el() { return getElement(this); }
570
+ static get watchers() { return {
571
+ "density": [{
572
+ "handleDensityChange": 0
573
+ }],
574
+ "hasSearch": [{
575
+ "handleHasSearchChange": 0
576
+ }]
577
+ }; }
578
+ };
579
+ TableBar.style = tableBarCss();
580
+
581
+ const tableCellCss = () => `*,*::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}:host{--table-cell-grid-column:auto;--table-cell-grid-row:auto;display:contents}.br-table-cell{position:relative;grid-column:var(--table-cell-grid-column, auto);grid-row:var(--table-cell-grid-row, auto);min-width:0;color:var(--color-light);padding:var(--br-table-density) var(--table-row-size);border-right:calc(var(--br-table-divider-base-width, 0px)*var(--br-table-column-divider-factor, 0)) var(--br-table-divider-style, solid) var(--border-color);border-bottom:calc(var(--br-table-divider-base-width, 0px)*var(--br-table-row-divider-factor, 0)) var(--br-table-divider-style, solid) var(--border-color);background-color:var(--background-light);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-medium)}:host-context(br-table-row[disabled]) .br-table-cell{opacity:var(--surface-opacity-md);box-shadow:var(--surface-shadow-none);cursor:not-allowed;pointer-events:auto}:host-context(br-table-row[disabled]) .br-table-cell-content{pointer-events:none}.br-table-cell:has(br-dropdown[is-open]){z-index:var(--z-index-layer-3, 3)}.br-table-cell:focus-visible{outline:var(--focus) var(--focus-style) var(--focus-width);outline-offset:calc(var(--focus-width)*-1)}.br-table-cell::before{position:absolute;inset:0;background-color:var(--text-color);content:"";opacity:0;pointer-events:none}:host-context(br-table-row[data-row-hover-enabled]:hover) .br-table-cell::before{opacity:var(--surface-opacity-xs)}.br-table-cell-content{position:relative;z-index:1;display:flex;align-items:var(--br-table-vertical-alignment);justify-content:flex-start;min-width:0;height:100%;text-align:left}:host-context(br-table-row[data-selected]) .br-table-cell{background-color:var(--blue-warm-vivid-50);color:var(--pure-0)}:host-context(br-table-row[data-selected]) .br-table-cell br-button::part(button),:host-context(br-table-row[data-selected]) .br-table-cell br-button::part(button):hover,:host-context(br-table-row[data-selected]) .br-table-cell br-button::part(button):focus,:host-context(br-table-row[data-selected]) .br-table-cell br-button::part(button):active{color:var(--pure-0)}:host-context(br-table-row[data-selected]) .br-table-cell br-icon::part(icon){color:var(--pure-0)}:host([data-selection-column]) .br-table-cell,:host([data-expansion-column]) .br-table-cell{padding:var(--br-table-density) var(--spacing-scale-base)}:host([data-selection-column]) .br-table-cell,:host([data-expansion-column]) .br-table-cell{display:flex;align-items:var(--br-table-vertical-alignment);justify-content:var(--br-table-horizontal-alignment)}:host([data-selection-column]) .br-table-cell-content{width:fit-content;height:auto}:host([data-expansion-column]) .br-table-cell-content{width:fit-content;height:auto}:host([data-selection-column]) .br-table-cell-truncate{display:flex;align-items:center;justify-content:inherit;width:fit-content;overflow:visible}:host([data-expansion-column]) .br-table-cell-truncate{display:flex;align-items:center;justify-content:inherit;width:fit-content}:host([data-selection-column]) ::slotted(br-checkbox){flex:0 0 auto;align-self:center}:host-context(br-table-row[disabled]) ::slotted(br-checkbox){--border-color:var(--gray-30, #adadad);--disabled:1}:host([data-expansion-column]) ::slotted(br-table-action){flex:0 0 auto;align-self:center}.br-table-cell-truncate{min-width:0;max-width:100%;overflow:var(--br-table-cell-overflow);text-overflow:var(--br-table-cell-text-overflow);white-space:var(--br-table-cell-white-space);word-break:break-all}.br-table-cell-truncate.has-table-actions{display:flex;align-items:center;justify-content:inherit;gap:var(--spacing-scale-half);overflow:visible;text-overflow:clip;white-space:normal}.br-table-cell br-dropdown:has(br-button[slot=trigger]){position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--table-row-size);height:var(--table-row-size);overflow:visible}.br-table-cell br-dropdown br-button[slot=trigger]{position:absolute;inset:50% auto auto 50%;transform:translate(-50%, -50%)}.cell-actions-slot-container{display:contents}.cell-actions-slot-container.is-hidden{display:none}.br-table-cell br-dropdown::part(target),br-list.cell-actions-dropdown-list{background-color:var(--background)}br-list.cell-actions-dropdown-list{max-height:min(170px,45vh);overflow-y:auto;overscroll-behavior:contain}:host([data-last-column]) .br-table-cell{border-right:none}:host([data-last-row]) .br-table-cell{border-bottom:none}`;
582
+
583
+ const TableCell = class {
584
+ constructor(hostRef) {
585
+ registerInstance(this, hostRef);
586
+ this.brAlignmentChange = createEvent(this, "brAlignmentChange", 7);
587
+ this.brOverflowChange = createEvent(this, "brOverflowChange", 7);
588
+ /**
589
+ * Quantidade de colunas ocupadas. Inteiro entre 1 e 1000; valores inválidos usam 1.
590
+ * @default 1
591
+ */
592
+ this.colSpan = 1;
593
+ /**
594
+ * Quantidade de linhas ocupadas no cabeçalho ou grupo. Limitada às linhas
595
+ * disponíveis; aceita inteiros de 1 a 1000 e valores inválidos usam 1.
596
+ * @default 1
597
+ */
598
+ this.rowSpan = 1;
599
+ /**
600
+ * Identifica um cabeçalho de linha, inclusive rótulos compartilhados por um grupo.
601
+ * @default false
602
+ */
603
+ this.rowHeader = false;
604
+ /**
605
+ * Texto completo do tooltip do botão de ações agrupadas desta célula.
606
+ * A propriedade `moreActionsLabel` de `br-table` prevalece quando
607
+ * informada. Valores vazios ou compostos apenas por espaços usam "Mais ações".
608
+ * Não altera o nome acessível do botão nem os rótulos das ações.
609
+ * Aceita texto simples por atributo ou propriedade, sem reflexão.
610
+ *
611
+ * @default 'Mais ações'
612
+ */
613
+ this.moreActionsLabel = 'Mais ações';
614
+ this.isTooltipVisible = false;
615
+ this.tooltipContent = '';
616
+ this.hasTableActionContent = false;
617
+ this.hasOnlyTableActionContent = false;
618
+ this.tableActions = [];
619
+ this.inheritedCellActionsLimit = 4;
620
+ this.effectiveActionDensity = TABLE_DENSITY.MEDIUM;
621
+ this.tooltipRef = null;
622
+ this.actionsTooltip = new TableActionsTooltip();
623
+ this.truncateContentRef = null;
624
+ this.contentSlotRef = null;
625
+ this.tableInheritedPropsObserver = null;
626
+ this.densityObserver = null;
627
+ /**
628
+ * Exibe o tooltip somente quando o conteúdo está truncado.
629
+ */
630
+ this.handleMouseEnter = async () => {
631
+ // Quando as ações foram agrupadas, o dropdown possui seu próprio tooltip.
632
+ // Evita criar um segundo tooltip ancorado no contêiner da célula.
633
+ if (this.shouldCollapseTableActions()) {
634
+ return;
635
+ }
636
+ if (this.resolveTooltipMode() !== TABLE_TOOLTIP_MODE.ENABLED) {
637
+ return;
638
+ }
639
+ const truncateContent = this.truncateContentRef;
640
+ if (truncateContent === null) {
641
+ return;
642
+ }
643
+ const hasOverflow = truncateContent.scrollWidth > truncateContent.clientWidth;
644
+ if (!hasOverflow) {
645
+ return;
646
+ }
647
+ this.tooltipContent = this.getFullCellContent();
648
+ if (this.tooltipContent.length === 0) {
649
+ return;
650
+ }
651
+ this.isTooltipVisible = true;
652
+ await requestAnimationFramePromise();
653
+ // Entre o pointerenter e o próximo frame a lista virtual pode desmontar a
654
+ // linha. Nunca registra um trigger que já saiu do documento.
655
+ if (!this.el.isConnected || !truncateContent.isConnected) {
656
+ await this.closeContentTooltip();
657
+ return;
658
+ }
659
+ if (this.tooltipRef?.isConnected) {
660
+ await this.tooltipRef.setTriggerElement(truncateContent);
661
+ await this.tooltipRef.showTooltip();
662
+ }
663
+ };
664
+ /**
665
+ * Fecha o tooltip e limpa o estado local. É reutilizado tanto no
666
+ * pointerleave quanto na desconexão causada pela lista virtual.
667
+ */
668
+ this.closeContentTooltip = async () => {
669
+ const tooltip = this.tooltipRef;
670
+ if (tooltip !== null) {
671
+ try {
672
+ await tooltip.hideTooltip();
673
+ }
674
+ catch {
675
+ // O tooltip pode estar sendo desconectado no mesmo ciclo da linha.
676
+ }
677
+ }
678
+ this.tooltipRef = null;
679
+ this.isTooltipVisible = false;
680
+ };
681
+ /**
682
+ * Oculta o tooltip ao encerrar a interação com a célula.
683
+ */
684
+ this.handleMouseLeave = async () => {
685
+ await this.closeContentTooltip();
686
+ };
687
+ this.syncActionDensity = () => {
688
+ const nextDensity = this.actionDensity ?? resolveTableDensityFromElement(this.el);
689
+ if (this.effectiveActionDensity !== nextDensity)
690
+ this.effectiveActionDensity = nextDensity;
691
+ };
692
+ }
693
+ /**
694
+ * Retorna a altura renderizada da superfície visual desta célula, em pixels.
695
+ *
696
+ * @returns Altura da superfície da célula; zero se ela ainda não estiver renderizada.
697
+ */
698
+ async getMeasuredHeight() {
699
+ const surface = this.el.shadowRoot?.querySelector('.br-table-cell');
700
+ return surface?.getBoundingClientRect().height ?? 0;
701
+ }
702
+ /**
703
+ * Ressincroniza a herança sempre que a célula entra na árvore.
704
+ * Isso é necessário porque a lista virtual conecta e desconecta a mesma
705
+ * instância diversas vezes durante o scroll.
706
+ */
707
+ connectedCallback() {
708
+ this.keyboard?.connect();
709
+ this.syncInheritedTableProps();
710
+ this.observeTableInheritedProps();
711
+ this.syncActionDensity();
712
+ this.observeDensitySources();
713
+ }
714
+ /**
715
+ * Inicializa ações, conteúdo e propriedades herdáveis após a montagem.
716
+ */
717
+ componentDidLoad() {
718
+ const surface = this.el.shadowRoot?.querySelector('[part="cell"]');
719
+ if (surface !== undefined && surface !== null) {
720
+ this.keyboard = new TableCellKeyboard(this.el, surface);
721
+ this.keyboard.connect();
722
+ }
723
+ this.syncInheritedTableProps();
724
+ this.updateHasTableActionContent();
725
+ void requestAnimationFramePromise().then(() => this.syncTableActions());
726
+ this.notifyAlignmentChange();
727
+ this.notifyOverflowChange();
728
+ this.syncActionDensity();
729
+ }
730
+ disconnectedCallback() {
731
+ this.keyboard?.disconnect();
732
+ this.tableInheritedPropsObserver?.disconnect();
733
+ this.tableInheritedPropsObserver = null;
734
+ this.densityObserver?.disconnect();
735
+ this.densityObserver = null;
736
+ // A virtualização pode remover a linha sem que pointerleave seja emitido.
737
+ // Fecha explicitamente qualquer tooltip ancorado nesta célula antes que o
738
+ // trigger deixe de existir no DOM.
739
+ void this.closeContentTooltip();
740
+ void this.actionsTooltip.hide();
741
+ }
742
+ /**
743
+ * Solicita o recálculo dos alinhamentos quando uma prop muda.
744
+ */
745
+ handleAlignmentChange() {
746
+ this.notifyAlignmentChange();
747
+ }
748
+ /**
749
+ * Solicita o recálculo do overflow quando a prop muda.
750
+ */
751
+ handleOverflowChange() {
752
+ this.notifyOverflowChange();
753
+ }
754
+ handleActionDensityChange() {
755
+ this.syncActionDensity();
756
+ }
757
+ /**
758
+ * Identifica se o slot contém ações e se elas são o único conteúdo.
759
+ */
760
+ updateHasTableActionContent() {
761
+ if (this.contentSlotRef === null) {
762
+ this.hasTableActionContent = false;
763
+ this.hasOnlyTableActionContent = false;
764
+ return;
765
+ }
766
+ const assignedElements = this.contentSlotRef.assignedElements({ flatten: true });
767
+ this.hasTableActionContent = assignedElements.some((element) => {
768
+ if (element.tagName.toLowerCase() === 'br-table-action') {
769
+ return true;
770
+ }
771
+ return element.querySelector('br-table-action') !== null;
772
+ });
773
+ this.hasOnlyTableActionContent =
774
+ assignedElements.length > 0 &&
775
+ assignedElements.every((element) => element.tagName.toLowerCase() === 'br-table-action');
776
+ }
777
+ /**
778
+ * Normaliza as ações atribuídas ao slot para uso no menu excedente.
779
+ */
780
+ syncTableActions() {
781
+ if (this.contentSlotRef === null) {
782
+ this.tableActions = [];
783
+ return;
784
+ }
785
+ const assignedElements = this.contentSlotRef.assignedElements({ flatten: true });
786
+ this.tableActions = assignedElements
787
+ .filter((element) => element.tagName.toLowerCase() === 'br-table-action')
788
+ .map((actionElement, index) => ({
789
+ actionElement,
790
+ label: this.getActionLabel(actionElement, index),
791
+ }));
792
+ }
793
+ /**
794
+ * Obtém um rótulo utilizável, com fallback baseado na posição.
795
+ */
796
+ getActionLabel(actionElement, index) {
797
+ const label = actionElement.getAttribute('label')?.trim() || actionElement.getAttribute('aria-label')?.trim();
798
+ if (label !== undefined && label.length > 0) {
799
+ return label;
800
+ }
801
+ return `Ação ${index + 1}`;
802
+ }
803
+ /**
804
+ * Resolve e sanitiza o limite local ou herdado de ações.
805
+ */
806
+ getNormalizedActionsLimit() {
807
+ if (this.cellActionsLimit !== undefined && Number.isFinite(this.cellActionsLimit)) {
808
+ return Math.max(1, Math.floor(this.cellActionsLimit));
809
+ }
810
+ return this.inheritedCellActionsLimit;
811
+ }
812
+ /**
813
+ * Resolve o limite herdado da tabela quando a célula não possui override local.
814
+ */
815
+ syncInheritedCellActionsLimit() {
816
+ const tableElement = this.el.closest('br-table');
817
+ const rawValue = tableElement?.getAttribute('cell-actions-limit');
818
+ const parsedValue = rawValue === null || rawValue === undefined ? Number.NaN : Number(rawValue);
819
+ this.inheritedCellActionsLimit = Number.isFinite(parsedValue) ? Math.max(1, Math.floor(parsedValue)) : 4;
820
+ }
821
+ /**
822
+ * Sincroniza as propriedades herdadas da tabela.
823
+ */
824
+ syncInheritedTableProps() {
825
+ this.syncInheritedCellActionsLimit();
826
+ this.inheritedMoreActionsLabel = this.el.closest('br-table')?.getAttribute('more-actions-label') ?? undefined;
827
+ }
828
+ /**
829
+ * Observa mudanças em runtime nas propriedades herdadas da tabela.
830
+ */
831
+ observeTableInheritedProps() {
832
+ const tableElement = this.el.closest('br-table');
833
+ if (tableElement === null)
834
+ return;
835
+ this.tableInheritedPropsObserver?.disconnect();
836
+ this.tableInheritedPropsObserver = new MutationObserver((mutations) => {
837
+ if (mutations.some((mutation) => mutation.attributeName === 'cell-actions-limit')) {
838
+ this.syncInheritedCellActionsLimit();
839
+ }
840
+ if (mutations.some((mutation) => mutation.attributeName === 'more-actions-label')) {
841
+ this.inheritedMoreActionsLabel = tableElement.getAttribute('more-actions-label') ?? undefined;
842
+ }
843
+ });
844
+ this.tableInheritedPropsObserver.observe(tableElement, {
845
+ attributes: true,
846
+ attributeFilter: ['cell-actions-limit', 'more-actions-label'],
847
+ });
848
+ }
849
+ /**
850
+ * Informa se as ações precisam ser agrupadas em um menu.
851
+ */
852
+ shouldCollapseTableActions() {
853
+ if (!this.hasOnlyTableActionContent) {
854
+ return false;
855
+ }
856
+ return this.tableActions.length > this.getNormalizedActionsLimit();
857
+ }
858
+ /**
859
+ * Cria o detalhe de uma ação selecionada no menu excedente.
860
+ */
861
+ getCollapsedActionDetail(label) {
862
+ return {
863
+ type: 'row',
864
+ label,
865
+ };
866
+ }
867
+ /**
868
+ * Publica o clique de uma ação agrupada.
869
+ */
870
+ handleCollapsedActionClick(event, label) {
871
+ event.preventDefault();
872
+ event.stopPropagation();
873
+ this.el.dispatchEvent(new CustomEvent('brTableActionClick', {
874
+ bubbles: true,
875
+ composed: true,
876
+ detail: this.getCollapsedActionDetail(label),
877
+ }));
878
+ }
879
+ /**
880
+ * Extrai o texto completo atribuído ao slot.
881
+ */
882
+ getFullCellContent() {
883
+ if (this.contentSlotRef === null) {
884
+ return '';
885
+ }
886
+ return this.contentSlotRef
887
+ .assignedNodes({ flatten: true })
888
+ .map((node) => node.textContent?.trim() || '')
889
+ .filter((text) => text.length > 0)
890
+ .join(' ');
891
+ }
892
+ /**
893
+ * Localiza o cabeçalho correspondente ao índice desta célula.
894
+ */
895
+ getColumnHeader() {
896
+ const table = this.el.closest('br-table');
897
+ if (table === null) {
898
+ return null;
899
+ }
900
+ const row = this.el.closest('br-table-row');
901
+ if (row === null) {
902
+ return null;
903
+ }
904
+ const cells = Array.from(row.querySelectorAll('br-table-cell'));
905
+ const columnIndex = cells.indexOf(this.el);
906
+ if (columnIndex === -1) {
907
+ return null;
908
+ }
909
+ const headers = Array.from(table.querySelectorAll('br-table-header-cell'));
910
+ return headers[columnIndex] ?? null;
911
+ }
912
+ /**
913
+ * Resolve o estado do tooltip seguindo a hierarquia da tabela.
914
+ */
915
+ resolveTooltipState() {
916
+ const cellValue = this.el.getAttribute('tooltip-state');
917
+ if (cellValue !== null)
918
+ return cellValue;
919
+ const row = this.el.closest('br-table-row');
920
+ const rowValue = row?.getAttribute('tooltip-state');
921
+ if (rowValue !== null)
922
+ return rowValue;
923
+ const columnHeader = this.getColumnHeader();
924
+ const columnValue = columnHeader?.getAttribute('tooltip-state');
925
+ if (columnValue !== null)
926
+ return columnValue;
927
+ const table = this.el.closest('br-table');
928
+ const tableValue = table?.getAttribute('tooltip-state');
929
+ if (tableValue !== null)
930
+ return tableValue;
931
+ return TABLE_TOOLTIP_STATE.INFO;
932
+ }
933
+ /**
934
+ * Resolve o modo do tooltip seguindo a hierarquia da tabela.
935
+ */
936
+ resolveTooltipMode() {
937
+ const cellValue = this.el.getAttribute('tooltip-mode');
938
+ if (cellValue !== null && cellValue !== TABLE_TOOLTIP_MODE.INHERIT)
939
+ return cellValue;
940
+ const row = this.el.closest('br-table-row');
941
+ const rowValue = row?.getAttribute('tooltip-mode');
942
+ if (rowValue !== null && rowValue !== TABLE_TOOLTIP_MODE.INHERIT)
943
+ return rowValue;
944
+ const columnHeader = this.getColumnHeader();
945
+ const columnValue = columnHeader?.getAttribute('tooltip-mode');
946
+ if (columnValue !== null && columnValue !== TABLE_TOOLTIP_MODE.INHERIT)
947
+ return columnValue;
948
+ const table = this.el.closest('br-table');
949
+ const tableValue = table?.getAttribute('tooltip-mode');
950
+ if (tableValue !== null && tableValue !== TABLE_TOOLTIP_MODE.INHERIT)
951
+ return tableValue;
952
+ return TABLE_TOOLTIP_MODE.DISABLED;
953
+ }
954
+ /**
955
+ * Publica a solicitação de recálculo dos alinhamentos.
956
+ */
957
+ notifyAlignmentChange() {
958
+ this.brAlignmentChange.emit();
959
+ }
960
+ /**
961
+ * Publica a solicitação de recálculo do overflow.
962
+ */
963
+ notifyOverflowChange() {
964
+ this.brOverflowChange.emit();
965
+ }
966
+ observeDensitySources() {
967
+ this.densityObserver?.disconnect();
968
+ this.densityObserver = null;
969
+ if (this.el.closest('br-table') !== null)
970
+ return;
971
+ this.densityObserver = new MutationObserver(this.syncActionDensity);
972
+ const densitySources = [
973
+ this.el,
974
+ this.el.closest('br-table-row'),
975
+ this.el.closest('br-table'),
976
+ ];
977
+ densitySources
978
+ .filter((element) => element !== null)
979
+ .forEach((element) => {
980
+ this.densityObserver?.observe(element, { attributes: true, attributeFilter: ['style', 'class', 'density'] });
981
+ });
982
+ }
983
+ /**
984
+ * Renderiza o menu que contém as ações excedentes.
985
+ */
986
+ renderActionsDropdown(actions) {
987
+ const tooltipLabel = (this.inheritedMoreActionsLabel ?? this.moreActionsLabel)?.trim() || 'Mais ações';
988
+ return (h(Fragment, null, h("br-dropdown", { placement: "bottom-end", targetZIndex: "var(--z-index-layer-3)", "prop:ariaLabel": "Mais a\u00E7\u00F5es da linha", ref: (element) => (this.actionsTooltip.dropdown = element), onBrDropdownOpenChange: this.actionsTooltip.hide }, h("br-button", { slot: "trigger", shape: "circle", density: this.effectiveActionDensity, emphasis: "tertiary", "prop:ariaLabel": "Abrir menu de a\u00E7\u00F5es", ref: (element) => (this.actionsTooltip.trigger = element), onPointerEnter: this.actionsTooltip.show, onPointerLeave: this.actionsTooltip.hide, onFocus: this.actionsTooltip.show, onBlur: this.actionsTooltip.hide, onClick: this.actionsTooltip.hide }, h("br-icon", { "attr:iconName": "fa-solid:ellipsis-v" })), h("br-list", { class: "cell-actions-dropdown-list", slot: "target", "list-title": "A\u00E7\u00F5es", divider: true }, actions.map((action) => (h("br-item", { isButton: true, type: "button", density: "small", "data-no-selection": true, onBrDidClick: (event) => this.handleCollapsedActionClick(event, action.label) }, action.label))))), h("br-tooltip", { ref: (element) => (this.actionsTooltip.tooltip = element), hideDelay: 3000 }, h("span", { slot: "content" }, tooltipLabel))));
989
+ }
990
+ /**
991
+ * Renderiza o conteúdo, as ações e o tooltip opcional.
992
+ */
993
+ render() {
994
+ const shouldCollapseActions = this.shouldCollapseTableActions();
995
+ return (h(Host, { key: '28336fcb0e7e3da9af094ab3f97dadd7c89afd7c', role: this.rowHeader ? 'rowheader' : 'gridcell' }, h("div", { key: '32378da7a8514dc43361557145d0ecda004789b0', class: "br-table-cell", role: "presentation", part: "cell" }, h("div", { key: '1a7181e51fb78331493af7514316159a65892092', class: "br-table-cell-content", role: "presentation", part: "content" }, h("div", { key: '1360b591b744208041d3ac41ec18a4cf7e33b8bc', class: {
996
+ 'br-table-cell-truncate': true,
997
+ 'has-table-actions': this.hasTableActionContent,
998
+ }, role: "presentation", ref: (el) => (this.truncateContentRef = el), onPointerEnter: this.handleMouseEnter, onPointerLeave: this.handleMouseLeave }, h("div", { key: '251a8d135461a8dcf774aa1943e7a9b01a9e6eb4', class: { 'cell-actions-slot-container': true, 'is-hidden': shouldCollapseActions } }, h("slot", { key: '5e2f00565491bf212659c060d6dacb1176c96004', ref: (el) => (this.contentSlotRef = el), onSlotchange: () => {
999
+ this.updateHasTableActionContent();
1000
+ this.syncTableActions();
1001
+ } })), shouldCollapseActions && this.renderActionsDropdown(this.tableActions)), this.isTooltipVisible && (h("br-tooltip", { key: '4081ef125267a1a8ac2ce501238bf17189c7ec8e', ref: (el) => (this.tooltipRef = el), position: "top", state: this.resolveTooltipState() === TABLE_TOOLTIP_STATE.DANGER ? 'danger' : this.resolveTooltipState() }, h("span", { key: 'c0f506b336ce0c20e3a493f0d96425baf63666c5', slot: "content" }, this.tooltipContent)))))));
1002
+ }
1003
+ get el() { return getElement(this); }
1004
+ static get watchers() { return {
1005
+ "horizontalAlignment": [{
1006
+ "handleAlignmentChange": 0
1007
+ }],
1008
+ "verticalAlignment": [{
1009
+ "handleAlignmentChange": 0
1010
+ }],
1011
+ "overflow": [{
1012
+ "handleOverflowChange": 0
1013
+ }],
1014
+ "actionDensity": [{
1015
+ "handleActionDensityChange": 0
1016
+ }]
1017
+ }; }
1018
+ };
1019
+ TableCell.style = tableCellCss();
1020
+
1021
+ const tableFooterCss = () => `*,*::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}:host{display:block}.br-table-footer{display:flex;align-items:center;padding:var(--br-table-bar-padding)}.br-table-footer br-pagination{flex:1 1 auto;min-width:0}`;
1022
+
1023
+ const TableFooter = class {
1024
+ constructor(hostRef) {
1025
+ registerInstance(this, hostRef);
1026
+ this.brInternalTableFooterPageChange = createEvent(this, "brInternalTableFooterPageChange", 0);
1027
+ this.brInternalTableFooterPerPageChange = createEvent(this, "brInternalTableFooterPerPageChange", 0);
1028
+ /** Página atual exibida pela paginação (1-indexada). */
1029
+ this.currentPage = 1;
1030
+ /** Quantidade de itens exibidos por página. */
1031
+ this.pageSize = 10;
1032
+ /** Opções disponíveis de itens por página. */
1033
+ this.pageSizeOptions = [10, 20, 30];
1034
+ /** Quantidade total de itens do conjunto de dados. */
1035
+ this.totalItems = 0;
1036
+ /** Densidade visual herdada da tabela. */
1037
+ this.density = 'medium';
1038
+ /** Indica que a área de dados da tabela possui rolagem. */
1039
+ this.hasScroll = false;
1040
+ this.handlePageChange = (event) => {
1041
+ this.brInternalTableFooterPageChange.emit(event.detail);
1042
+ };
1043
+ this.handlePerPageChange = (event) => {
1044
+ this.brInternalTableFooterPerPageChange.emit(event.detail);
1045
+ };
1046
+ }
1047
+ render() {
1048
+ return (h(Host, { key: '3b218f320a144fd8ba674ab206c145b6a4b75753' }, h("div", { key: '2749e474e34bfb8d488abf6bf2a698b7e921699c', class: "br-table-footer", part: "container" }, h("br-pagination", { key: 'ea83c0270df21d1bdb2d25977ab409f21d9dbbb6', variant: "contextual", ariaLabel: "Pagina\u00E7\u00E3o da tabela", "prop:controlled": true, "prop:density": this.density, "prop:currentPage": this.currentPage, "prop:perPage": this.pageSize, perPageOptions: this.pageSizeOptions, "prop:totalItems": this.totalItems, onBrPaginationPageChange: this.handlePageChange, onBrPaginationPerPageChange: this.handlePerPageChange }))));
1049
+ }
1050
+ get el() { return getElement(this); }
1051
+ };
1052
+ TableFooter.style = tableFooterCss();
1053
+
1054
+ /** Publica a altura border-box fora do ciclo de scroll. */
1055
+ class TableHeaderHeightObserver {
1056
+ constructor(host, surface) {
1057
+ this.host = host;
1058
+ this.surface = surface;
1059
+ this.refresh = () => {
1060
+ if (this.observer === undefined && this.host.isConnected) {
1061
+ this.publish(this.surface.getBoundingClientRect().height);
1062
+ }
1063
+ };
1064
+ }
1065
+ connect() {
1066
+ this.disconnect();
1067
+ if (this.host.closest('br-table') === null)
1068
+ return;
1069
+ this.publish(this.surface.getBoundingClientRect().height);
1070
+ if (typeof ResizeObserver === 'undefined')
1071
+ return;
1072
+ this.observer = new ResizeObserver(([entry]) => {
1073
+ if (!this.host.isConnected || entry === undefined)
1074
+ return;
1075
+ const size = entry.borderBoxSize[0];
1076
+ const horizontal = !/^(vertical|sideways)/.test(getComputedStyle(this.surface).writingMode);
1077
+ this.publish(size === undefined
1078
+ ? this.surface.getBoundingClientRect().height
1079
+ : horizontal
1080
+ ? size.blockSize
1081
+ : size.inlineSize);
1082
+ });
1083
+ this.observer.observe(this.surface, { box: 'border-box' });
1084
+ }
1085
+ disconnect() {
1086
+ this.observer?.disconnect();
1087
+ this.observer = undefined;
1088
+ }
1089
+ publish(height) {
1090
+ this.host.dispatchEvent(new CustomEvent('brInternalTableHeaderHeight', {
1091
+ bubbles: true,
1092
+ composed: false,
1093
+ detail: { host: this.host, height, refresh: this.refresh },
1094
+ }));
1095
+ }
1096
+ }
1097
+
1098
+ const tableHeaderCellCss = () => `*,*::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}:host{--table-cell-grid-column:auto;--table-cell-grid-row:auto;display:contents}.br-table-header-cell{position:sticky;top:0;z-index:2;grid-column:var(--table-cell-grid-column, auto);grid-row:var(--table-cell-grid-row, auto);min-width:0;padding:var(--br-table-density) var(--table-row-size);background-color:var(--background-alternative);border-right:calc(var(--br-table-divider-base-width, 0px)*var(--br-table-column-divider-factor, 0)) var(--br-table-divider-style, solid) var(--border-color);color:var(--interactive);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold)}.br-table-header-cell.is-sortable{position:sticky;cursor:pointer}.br-table-header-cell:focus-visible{outline:var(--focus) var(--focus-style) var(--focus-width);outline-offset:calc(var(--focus-width)*-1)}.br-table-header-cell.is-sortable::before{position:absolute;z-index:0;inset:0;background-color:var(--interactive);content:"";opacity:0;pointer-events:none}.br-table-header-cell.is-sortable:hover::before{opacity:var(--surface-opacity-xs)}.br-table-header-cell.is-sortable:active::before{opacity:var(--surface-opacity-md)}.br-table-header-cell-content{position:relative;z-index:1;display:flex;align-items:var(--br-table-vertical-alignment);justify-content:flex-start;min-width:0;gap:var(--spacing-scale-base);height:100%}.br-table-header-cell-label{display:flex;flex:1 1 auto;align-items:var(--br-table-vertical-alignment);justify-content:flex-start;min-width:0}:host([data-selection-column]) .br-table-header-cell,:host([data-expansion-column]) .br-table-header-cell{padding:var(--br-table-density) var(--spacing-scale-base)}:host([data-selection-column]) .br-table-header-cell,:host([data-expansion-column]) .br-table-header-cell{display:flex;align-items:var(--br-table-vertical-alignment);justify-content:var(--br-table-horizontal-alignment)}:host([data-selection-column]) .br-table-header-cell-content,:host([data-selection-column]) .br-table-header-cell-label{width:fit-content;height:auto}:host([data-expansion-column]) .br-table-header-cell-content,:host([data-expansion-column]) .br-table-header-cell-label{width:fit-content;height:auto}:host([data-selection-column]) .br-table-header-cell-truncate{display:flex;align-items:center;justify-content:inherit;width:fit-content;overflow:visible}:host([data-expansion-column]) .br-table-header-cell-truncate{display:flex;align-items:center;justify-content:inherit;width:fit-content}:host([data-selection-column]) ::slotted(br-checkbox){flex:0 0 auto;align-self:center}.br-table-header-cell-truncate{min-width:0;max-width:100%;overflow:var(--br-table-cell-overflow);text-overflow:var(--br-table-cell-text-overflow);white-space:var(--br-table-cell-white-space);word-break:break-all}:host([data-last-column]) .br-table-header-cell{border-right:none}.br-table-sort-trigger{width:100%;margin:0;padding:0;border:0;background:rgba(0,0,0,0);color:inherit;font:inherit;text-align:inherit;cursor:pointer}.br-table-sort-trigger:focus-visible{outline:var(--surface-width-md) solid currentcolor;outline-offset:calc(var(--surface-width-sm)*-1)}.sort-icon{display:block;width:var(--spacing-scale-2x);height:var(--spacing-scale-2x);opacity:0}.br-table-header-cell.is-sortable:hover .sort-icon,.br-table-header-cell.is-sortable:focus-within .sort-icon,.br-table-header-cell.is-sortable.is-sorted .sort-icon{opacity:1}.sort-icon-pair{display:flex;align-items:center;justify-content:center}.br-table-header-cell>br-tooltip{position:absolute;inset:0 auto auto 0;width:0;height:0}:host-context(br-table-header[data-multilevel]) .br-table-header-cell{position:relative}`;
1099
+
1100
+ const TableHeaderCell = class {
1101
+ constructor(hostRef) {
1102
+ registerInstance(this, hostRef);
1103
+ this.brColumnWidthChange = createEvent(this, "brColumnWidthChange", 7);
1104
+ this.brAlignmentChange = createEvent(this, "brAlignmentChange", 7);
1105
+ this.brOverflowChange = createEvent(this, "brOverflowChange", 7);
1106
+ this.brInternalTableSortRequest = createEvent(this, "brInternalTableSortRequest", 4);
1107
+ /**
1108
+ * Quantidade de colunas ocupadas. Inteiro entre 1 e 1000; valores inválidos usam 1.
1109
+ * @default 1
1110
+ */
1111
+ this.colSpan = 1;
1112
+ /**
1113
+ * Quantidade de linhas ocupadas no cabeçalho ou grupo. Limitada às linhas
1114
+ * disponíveis; aceita inteiros de 1 a 1000 e valores inválidos usam 1.
1115
+ * @default 1
1116
+ */
1117
+ this.rowSpan = 1;
1118
+ /** Habilita a ordenação desta coluna. */
1119
+ this.sortable = false;
1120
+ this.isTooltipVisible = false;
1121
+ this.tooltipContent = '';
1122
+ this.tooltipRef = null;
1123
+ this.truncateContentRef = null;
1124
+ this.contentSlotRef = null;
1125
+ /**
1126
+ * Exibe o tooltip somente quando o conteúdo está truncado.
1127
+ */
1128
+ this.handleMouseEnter = async () => {
1129
+ if (this.resolveTooltipMode() !== TABLE_TOOLTIP_MODE.ENABLED) {
1130
+ return;
1131
+ }
1132
+ const truncateContent = this.truncateContentRef;
1133
+ if (truncateContent === null) {
1134
+ return;
1135
+ }
1136
+ const hasOverflow = truncateContent.scrollWidth > truncateContent.clientWidth;
1137
+ if (!hasOverflow) {
1138
+ return;
1139
+ }
1140
+ this.tooltipContent = this.getFullCellContent();
1141
+ if (this.tooltipContent.length === 0) {
1142
+ return;
1143
+ }
1144
+ this.isTooltipVisible = true;
1145
+ await requestAnimationFramePromise();
1146
+ if (!this.el.isConnected || !truncateContent.isConnected) {
1147
+ await this.closeContentTooltip();
1148
+ return;
1149
+ }
1150
+ if (this.tooltipRef?.isConnected) {
1151
+ await this.tooltipRef.setTriggerElement(truncateContent);
1152
+ await this.tooltipRef.showTooltip();
1153
+ }
1154
+ };
1155
+ this.closeContentTooltip = async () => {
1156
+ const tooltip = this.tooltipRef;
1157
+ if (tooltip !== null) {
1158
+ try {
1159
+ await tooltip.hideTooltip();
1160
+ }
1161
+ catch {
1162
+ // O tooltip pode estar sendo desconectado junto com o host.
1163
+ }
1164
+ }
1165
+ this.tooltipRef = null;
1166
+ this.isTooltipVisible = false;
1167
+ };
1168
+ /**
1169
+ * Oculta o tooltip ao encerrar a interação com a célula.
1170
+ */
1171
+ this.handleMouseLeave = async () => {
1172
+ await this.closeContentTooltip();
1173
+ };
1174
+ this.handleSortClick = (event) => {
1175
+ event.preventDefault();
1176
+ event.stopPropagation();
1177
+ this.brInternalTableSortRequest.emit();
1178
+ };
1179
+ }
1180
+ connectedCallback() {
1181
+ this.keyboard?.connect();
1182
+ this.headerHeightObserver?.connect();
1183
+ }
1184
+ /**
1185
+ * Publica o estado inicial após a primeira renderização.
1186
+ */
1187
+ componentDidLoad() {
1188
+ const surface = this.el.shadowRoot?.querySelector('[part="cell"]');
1189
+ if (surface !== undefined && surface !== null) {
1190
+ this.keyboard = new TableCellKeyboard(this.el, surface);
1191
+ this.keyboard.connect();
1192
+ this.headerHeightObserver = new TableHeaderHeightObserver(this.el, surface);
1193
+ this.headerHeightObserver.connect();
1194
+ }
1195
+ this.notifyColumnWidthChange();
1196
+ this.notifyAlignmentChange();
1197
+ this.notifyOverflowChange();
1198
+ }
1199
+ disconnectedCallback() {
1200
+ this.keyboard?.disconnect();
1201
+ this.headerHeightObserver?.disconnect();
1202
+ // Garante limpeza caso o componente seja removido enquanto o tooltip está
1203
+ // aberto. Mantém o mesmo contrato usado pelas células virtualizadas.
1204
+ void this.closeContentTooltip();
1205
+ }
1206
+ /**
1207
+ * Solicita o recálculo do grid quando a largura muda.
1208
+ */
1209
+ handleColumnWidthChange() {
1210
+ this.notifyColumnWidthChange();
1211
+ }
1212
+ /**
1213
+ * Solicita o recálculo dos alinhamentos quando uma prop muda.
1214
+ */
1215
+ handleAlignmentChange() {
1216
+ this.notifyAlignmentChange();
1217
+ }
1218
+ /**
1219
+ * Solicita o recálculo do overflow quando a prop muda.
1220
+ */
1221
+ handleOverflowChange() {
1222
+ this.notifyOverflowChange();
1223
+ }
1224
+ /**
1225
+ * Extrai o texto completo atribuído ao slot.
1226
+ */
1227
+ getFullCellContent() {
1228
+ if (this.contentSlotRef === null) {
1229
+ return '';
1230
+ }
1231
+ return this.contentSlotRef
1232
+ .assignedNodes({ flatten: true })
1233
+ .map((node) => node.textContent?.trim() || '')
1234
+ .filter((text) => text.length > 0)
1235
+ .join(' ');
1236
+ }
1237
+ /**
1238
+ * Resolve o estado do tooltip seguindo célula, linha e tabela.
1239
+ */
1240
+ resolveTooltipState() {
1241
+ const cellValue = this.el.getAttribute('tooltip-state');
1242
+ if (cellValue !== null)
1243
+ return cellValue;
1244
+ const row = this.el.closest('br-table-row');
1245
+ const rowValue = row?.getAttribute('tooltip-state');
1246
+ if (rowValue !== null)
1247
+ return rowValue;
1248
+ const table = this.el.closest('br-table');
1249
+ const tableValue = table?.getAttribute('tooltip-state');
1250
+ if (tableValue !== null)
1251
+ return tableValue;
1252
+ return TABLE_TOOLTIP_STATE.INFO;
1253
+ }
1254
+ /**
1255
+ * Resolve o modo do tooltip seguindo a hierarquia de configuração.
1256
+ */
1257
+ resolveTooltipMode() {
1258
+ const cellValue = this.el.getAttribute('tooltip-mode');
1259
+ if (cellValue !== null && cellValue !== TABLE_TOOLTIP_MODE.INHERIT)
1260
+ return cellValue;
1261
+ const row = this.el.closest('br-table-row');
1262
+ const rowValue = row?.getAttribute('tooltip-mode');
1263
+ if (rowValue !== null && rowValue !== TABLE_TOOLTIP_MODE.INHERIT)
1264
+ return rowValue;
1265
+ const table = this.el.closest('br-table');
1266
+ const tableValue = table?.getAttribute('tooltip-mode');
1267
+ if (tableValue !== null && tableValue !== TABLE_TOOLTIP_MODE.INHERIT)
1268
+ return tableValue;
1269
+ return TABLE_TOOLTIP_MODE.DISABLED;
1270
+ }
1271
+ /**
1272
+ * Publica a solicitação de recálculo da largura.
1273
+ */
1274
+ notifyColumnWidthChange() {
1275
+ this.brColumnWidthChange.emit();
1276
+ }
1277
+ /**
1278
+ * Publica a solicitação de recálculo dos alinhamentos.
1279
+ */
1280
+ notifyAlignmentChange() {
1281
+ this.brAlignmentChange.emit();
1282
+ }
1283
+ /**
1284
+ * Publica a solicitação de recálculo do overflow.
1285
+ */
1286
+ notifyOverflowChange() {
1287
+ this.brOverflowChange.emit();
1288
+ }
1289
+ getSortAriaLabel() {
1290
+ const columnLabel = this.getFullCellContent() || 'Coluna';
1291
+ if (this.sortDirection === TABLE_SORT_DIRECTION.ASC) {
1292
+ return `${columnLabel}: ordenado de forma crescente. Alterar para decrescente`;
1293
+ }
1294
+ if (this.sortDirection === TABLE_SORT_DIRECTION.DESC) {
1295
+ return `${columnLabel}: ordenado de forma decrescente. Remover ordenação`;
1296
+ }
1297
+ return `${columnLabel}: sem ordenação. Ordenar de forma crescente`;
1298
+ }
1299
+ renderSortIcons() {
1300
+ if (this.sortDirection === TABLE_SORT_DIRECTION.ASC || this.sortDirection === TABLE_SORT_DIRECTION.DESC) {
1301
+ const iconName = this.sortDirection === TABLE_SORT_DIRECTION.ASC ? 'fa-solid:sort-up' : 'fa-solid:sort-down';
1302
+ return h("br-icon", { class: "sort-icon", "prop:iconName": iconName });
1303
+ }
1304
+ // Um único glyph mantém as setas justapostas sem depender de espaçamento manual entre ícones.
1305
+ return (h("span", { class: "sort-icon-pair" }, h("br-icon", { class: "sort-icon", "prop:iconName": "fa-solid:sort" })));
1306
+ }
1307
+ /**
1308
+ * Renderiza o cabeçalho, seu conteúdo e o tooltip opcional.
1309
+ */
1310
+ render() {
1311
+ const canSort = this.sortable && resolveTableSpan(String(this.colSpan)) === 1;
1312
+ const labelAndIcon = (h(Fragment, { key: 'e327ea2a7c797ddf0b32b912f8a949c26e54809e' }, h("div", { key: '6cfb56797ad5cc29c930234feb9a0354c741d537', class: "br-table-header-cell-label", role: "presentation" }, h("div", { key: '597d2e9316228ce200b39a9a2c5a359616fa413d', class: "br-table-header-cell-truncate", role: "presentation", ref: (el) => (this.truncateContentRef = el), onPointerEnter: this.handleMouseEnter, onPointerLeave: this.handleMouseLeave }, h("slot", { key: '49a331d81d404684f8778e235350963b1805170d', ref: (el) => (this.contentSlotRef = el) }))), canSort && this.renderSortIcons()));
1313
+ return (h(Host, { key: '7c219d7b4648522255b1b85d057f0c408e3f0702', role: "columnheader" }, h("div", { key: '56e593dddb114f847f99a2d541273a46cdf1a534', class: {
1314
+ 'br-table-header-cell': true,
1315
+ 'is-sortable': canSort,
1316
+ 'is-sorted': this.sortDirection !== undefined,
1317
+ }, role: "presentation", part: "cell" }, canSort ? (
1318
+ // O botão preenche toda a célula para que o clique em qualquer ponto do cabeçalho ordene a coluna.
1319
+ h("button", { class: "br-table-header-cell-content br-table-sort-trigger", type: "button", part: "content", "aria-label": this.getSortAriaLabel(), onClick: this.handleSortClick }, labelAndIcon)) : (h("div", { class: "br-table-header-cell-content", role: "presentation", part: "content" }, labelAndIcon)), this.isTooltipVisible && (h("br-tooltip", { key: 'b1fd2f34e818ed7789d21342b0abcde05c19f6f6', ref: (el) => (this.tooltipRef = el), position: "top", state: this.resolveTooltipState() === TABLE_TOOLTIP_STATE.DANGER ? 'danger' : this.resolveTooltipState() }, h("span", { key: '3bd5d137c146815d170c1dd21acd06f084c85329', slot: "content" }, this.tooltipContent))))));
1320
+ }
1321
+ get el() { return getElement(this); }
1322
+ static get watchers() { return {
1323
+ "columnWidth": [{
1324
+ "handleColumnWidthChange": 0
1325
+ }],
1326
+ "horizontalAlignment": [{
1327
+ "handleAlignmentChange": 0
1328
+ }],
1329
+ "verticalAlignment": [{
1330
+ "handleAlignmentChange": 0
1331
+ }],
1332
+ "overflow": [{
1333
+ "handleOverflowChange": 0
1334
+ }]
1335
+ }; }
1336
+ };
1337
+ TableHeaderCell.style = tableHeaderCellCss();
1338
+
1339
+ const tableRowCss = () => `*,*::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}:host{display:contents}.br-table-row{display:contents}.br-table-row-expanded-content{grid-column:1/-1;min-width:0;height:var(--br-table-expanded-content-height, 240px);overflow-y:auto;box-sizing:border-box;padding:var(--br-table-density) var(--table-row-size);background-color:var(--background-light);border-bottom:calc(var(--br-table-divider-base-width, 0px)*var(--br-table-row-divider-factor, 0)) var(--br-table-divider-style, solid) var(--border-color)}.expanded-content-shell{position:relative;grid-row:var(--table-expanded-grid-row, auto);grid-column:1/-1;min-width:0}.expanded-content-inner{display:flow-root}.expanded-content-shell::after{position:absolute;z-index:3;inset:0;background:linear-gradient(to bottom, rgba(0, 0, 0, 0.16), transparent) top/100% var(--table-scroll-shadow-top, 0),linear-gradient(to top, rgba(0, 0, 0, 0.16), transparent) bottom/100% var(--table-scroll-shadow-bottom, 0),linear-gradient(to right, rgba(0, 0, 0, 0.16), transparent) left/var(--table-scroll-shadow-left, 0) 100%,linear-gradient(to left, rgba(0, 0, 0, 0.16), transparent) right/var(--table-scroll-shadow-right, 0) 100%;background-repeat:no-repeat;content:"";pointer-events:none}`;
1340
+
1341
+ const TableRow = class {
1342
+ constructor(hostRef) {
1343
+ registerInstance(this, hostRef);
1344
+ this.brAlignmentChange = createEvent(this, "brAlignmentChange", 7);
1345
+ this.brOverflowChange = createEvent(this, "brOverflowChange", 7);
1346
+ /**
1347
+ * Indica se a linha está selecionada.
1348
+ *
1349
+ * @default false
1350
+ */
1351
+ this.selected = false;
1352
+ /**
1353
+ * Controla se a expansão é habilitada, desabilitada ou herdada da tabela.
1354
+ *
1355
+ * @default 'inherit'
1356
+ */
1357
+ this.rowExpansion = TABLE_ROW_EXPANSION.INHERIT;
1358
+ /**
1359
+ * Altura visível da área expandida desta linha, em pixels.
1360
+ *
1361
+ * @remarks Quando omitida, herda `virtualExpandedContentHeight` de `br-table`.
1362
+ * @default null
1363
+ */
1364
+ this.virtualExpandedContentHeight = null;
1365
+ /**
1366
+ * Indica se o conteúdo adicional da linha está visível.
1367
+ *
1368
+ * @default false
1369
+ */
1370
+ this.expanded = false;
1371
+ }
1372
+ /**
1373
+ * Retorna a maior altura das células desta linha somada à área de expansão, em pixels.
1374
+ *
1375
+ * @returns Altura medida das células diretamente pertencentes à linha e do conteúdo expandido renderizado.
1376
+ */
1377
+ async getMeasuredHeight() {
1378
+ const cells = Array.from(this.el.querySelectorAll('br-table-cell')).filter((cell) => cell.closest('br-table-row') === this.el);
1379
+ const cellHeights = await Promise.all(cells
1380
+ .filter((cell) => Number(cell.getAttribute('aria-rowspan') ?? 1) <= 1)
1381
+ .map((cell) => cell.getMeasuredHeight()));
1382
+ const group = this.el.parentElement;
1383
+ const trackIndex = group?.hasAttribute('data-table-row-group') ? Array.from(group.children).indexOf(this.el) : -1;
1384
+ const track = trackIndex >= 0 && group ? getComputedStyle(group).gridTemplateRows.split(/\s+/)[trackIndex] : undefined;
1385
+ const trackHeight = track && /^\d+(\.\d+)?px$/.test(track) ? Number.parseFloat(track) : 0;
1386
+ const cellHeight = trackHeight || Math.max(0, ...cellHeights);
1387
+ const expandedContent = this.el.shadowRoot?.querySelector('.br-table-row-expanded-content');
1388
+ return cellHeight + (expandedContent?.getBoundingClientRect().height ?? 0);
1389
+ }
1390
+ /**
1391
+ * Sincroniza as propriedades herdáveis após a primeira renderização.
1392
+ */
1393
+ connectedCallback() {
1394
+ this.applyExpandedContentHeight();
1395
+ this.syncScrollShadows();
1396
+ }
1397
+ componentDidLoad() {
1398
+ this.applyExpandedContentHeight();
1399
+ this.notifyAlignmentChange();
1400
+ this.notifyOverflowChange();
1401
+ }
1402
+ syncScrollShadows() {
1403
+ const viewport = this.el.shadowRoot?.querySelector('.br-table-row-expanded-content');
1404
+ if (viewport !== this.expandedViewport) {
1405
+ this.scrollShadows?.disconnect();
1406
+ this.scrollShadows = undefined;
1407
+ this.expandedViewport = viewport ?? undefined;
1408
+ const content = viewport?.querySelector('.expanded-content-inner');
1409
+ if (viewport && content && viewport.parentElement) {
1410
+ this.scrollShadows = new TableScrollShadows(viewport, content, viewport.parentElement);
1411
+ }
1412
+ }
1413
+ this.scrollShadows?.update();
1414
+ }
1415
+ componentDidRender() {
1416
+ this.syncScrollShadows();
1417
+ }
1418
+ disconnectedCallback() {
1419
+ this.scrollShadows?.disconnect();
1420
+ this.scrollShadows = undefined;
1421
+ this.expandedViewport = undefined;
1422
+ }
1423
+ /**
1424
+ * Notifica a tabela para recalcular os alinhamentos das células.
1425
+ */
1426
+ handleAlignmentChange() {
1427
+ this.notifyAlignmentChange();
1428
+ }
1429
+ /**
1430
+ * Notifica a tabela para recalcular o overflow das células.
1431
+ */
1432
+ handleOverflowChange() {
1433
+ this.notifyOverflowChange();
1434
+ }
1435
+ /**
1436
+ * Publica a solicitação de recálculo de alinhamento.
1437
+ */
1438
+ notifyAlignmentChange() {
1439
+ this.brAlignmentChange.emit();
1440
+ }
1441
+ /**
1442
+ * Publica a solicitação de recálculo de overflow.
1443
+ */
1444
+ notifyOverflowChange() {
1445
+ this.brOverflowChange.emit();
1446
+ }
1447
+ /** Sincroniza o override local de altura da área expandida. */
1448
+ handleVirtualExpandedContentHeightChange() {
1449
+ this.applyExpandedContentHeight();
1450
+ }
1451
+ applyExpandedContentHeight() {
1452
+ const value = this.virtualExpandedContentHeight;
1453
+ if (value !== null && value !== undefined && Number.isFinite(value) && value > 0) {
1454
+ this.el.style.setProperty('--br-table-expanded-content-height', `${value}px`);
1455
+ return;
1456
+ }
1457
+ // Sem override local, permite que o token definido por br-table seja herdado.
1458
+ this.el.style.removeProperty('--br-table-expanded-content-height');
1459
+ }
1460
+ /**
1461
+ * Indica se a linha está elegível para exibir expansão.
1462
+ */
1463
+ isExpansionEnabled() {
1464
+ return this.rowExpansion === TABLE_ROW_EXPANSION.ENABLED || this.el.hasAttribute('data-row-expansion-enabled');
1465
+ }
1466
+ /**
1467
+ * Renderiza as células e, quando expandida, o conteúdo adicional.
1468
+ */
1469
+ render() {
1470
+ const standalone = this.el.closest('br-table') === null;
1471
+ const shouldRenderExpandedContent = this.expanded && (standalone || this.isExpansionEnabled());
1472
+ const columnCount = this.el.querySelectorAll(':scope > br-table-cell').length;
1473
+ return (h(Host, { key: 'ace9d4ad52c20827ec6047c7acf272fa0f79ecd3', role: "row" }, h("div", { key: 'c8931561787d0f04332c02d777a083575fa2d6b0', class: "br-table-row", role: "presentation", part: "row" }, h("slot", { key: 'ab1b420bfd4a538f66f2fa9997343540b07689ea' }), shouldRenderExpandedContent && (h("div", { key: '6a8aab7c4e72c66536b0b479798241b5989bb365', class: "expanded-content-shell", role: "presentation" }, h("div", { key: 'ff1585ac5946d727446f4797a25d2a1dc8c9a28a', class: "br-table-row-expanded-content", role: "gridcell", tabIndex: -1, "aria-colspan": columnCount > 1 ? String(columnCount) : undefined, part: "expanded-content" }, h("div", { key: '8bdb995415a4eda39d833ea5ef2ef4b928833925', class: "expanded-content-inner" }, h("slot", { key: 'd14b1c47734bb192f4d6ac53d34b103b97852a8f', name: "expanded-content" }))))))));
1474
+ }
1475
+ get el() { return getElement(this); }
1476
+ static get watchers() { return {
1477
+ "horizontalAlignment": [{
1478
+ "handleAlignmentChange": 0
1479
+ }],
1480
+ "verticalAlignment": [{
1481
+ "handleAlignmentChange": 0
1482
+ }],
1483
+ "overflow": [{
1484
+ "handleOverflowChange": 0
1485
+ }],
1486
+ "virtualExpandedContentHeight": [{
1487
+ "handleVirtualExpandedContentHeightChange": 0
1488
+ }]
1489
+ }; }
1490
+ };
1491
+ TableRow.style = tableRowCss();
1492
+
1493
+ export { TableAction as br_table_action, TableBar as br_table_bar, TableCell as br_table_cell, TableFooter as br_table_footer, TableHeaderCell as br_table_header_cell, TableRow as br_table_row };