@govbr-ds/webcomponents 2.3.0 → 2.5.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 (787) hide show
  1. package/README.md +2 -2
  2. package/cem/custom-elements.json +1764 -1575
  3. package/cem/webcomponents.html-custom-data.json +194 -163
  4. package/dist/cjs/br-avatar.cjs.entry.js +3 -3
  5. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +1 -1
  6. package/dist/cjs/br-breadcrumb.cjs.entry.js +3 -3
  7. package/dist/cjs/br-button_2.cjs.entry.js +4 -4
  8. package/dist/cjs/br-card.cjs.entry.js +3 -3
  9. package/dist/cjs/br-carousel-page.cjs.entry.js +2 -2
  10. package/dist/cjs/br-carousel.cjs.entry.js +2 -2
  11. package/dist/cjs/br-checkbox-group.cjs.entry.js +3 -3
  12. package/dist/cjs/br-checkbox.cjs.entry.js +4 -4
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +1 -1
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +5 -5
  15. package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +2 -2
  16. package/dist/cjs/br-cookiebar-group.cjs.entry.js +2 -2
  17. package/dist/cjs/br-cookiebar-header.cjs.entry.js +2 -2
  18. package/dist/cjs/br-cookiebar-link.cjs.entry.js +2 -2
  19. package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +1 -1
  20. package/dist/cjs/br-cookiebar-note.cjs.entry.js +2 -2
  21. package/dist/cjs/br-cookiebar.cjs.entry.js +3 -3
  22. package/dist/cjs/br-crumb.cjs.entry.js +1 -1
  23. package/dist/cjs/br-date-picker_3.cjs.entry.js +984 -545
  24. package/dist/cjs/br-datetime-picker.cjs.entry.js +1346 -310
  25. package/dist/cjs/br-divider.cjs.entry.js +3 -3
  26. package/dist/cjs/br-dropdown_2.cjs.entry.js +282 -139
  27. package/dist/cjs/br-footer-category.cjs.entry.js +3 -3
  28. package/dist/cjs/br-footer-item.cjs.entry.js +2 -2
  29. package/dist/cjs/br-footer-legal.cjs.entry.js +2 -2
  30. package/dist/cjs/br-footer-logo.cjs.entry.js +2 -2
  31. package/dist/cjs/br-footer-social.cjs.entry.js +2 -2
  32. package/dist/cjs/br-footer.cjs.entry.js +4 -4
  33. package/dist/cjs/br-header-function.cjs.entry.js +2 -2
  34. package/dist/cjs/br-header-link.cjs.entry.js +2 -2
  35. package/dist/cjs/br-header-list.cjs.entry.js +2 -2
  36. package/dist/cjs/br-header-logo.cjs.entry.js +2 -2
  37. package/dist/cjs/br-header.cjs.entry.js +2 -2
  38. package/dist/cjs/br-icon.cjs.entry.js +3 -3
  39. package/dist/cjs/br-input.cjs.entry.js +64 -10
  40. package/dist/cjs/br-item.cjs.entry.js +3 -3
  41. package/dist/cjs/br-link.cjs.entry.js +8 -8
  42. package/dist/cjs/br-loading.cjs.entry.js +2 -2
  43. package/dist/cjs/br-magic-button.cjs.entry.js +2 -2
  44. package/dist/cjs/br-menu-group.cjs.entry.js +2 -2
  45. package/dist/cjs/br-menu-header.cjs.entry.js +2 -2
  46. package/dist/cjs/br-menu-info.cjs.entry.js +2 -2
  47. package/dist/cjs/br-menu-item.cjs.entry.js +2 -2
  48. package/dist/cjs/br-menu-link.cjs.entry.js +2 -2
  49. package/dist/cjs/br-menu-list.cjs.entry.js +1 -1
  50. package/dist/cjs/br-menu-logo.cjs.entry.js +2 -2
  51. package/dist/cjs/br-menu-social.cjs.entry.js +1 -1
  52. package/dist/cjs/br-menu.cjs.entry.js +4 -4
  53. package/dist/cjs/br-modal.cjs.entry.js +1 -1
  54. package/dist/cjs/br-notification-body.cjs.entry.js +2 -2
  55. package/dist/cjs/br-notification-header.cjs.entry.js +2 -2
  56. package/dist/cjs/br-notification-item.cjs.entry.js +2 -2
  57. package/dist/cjs/br-notification.cjs.entry.js +3 -3
  58. package/dist/cjs/br-pagination.cjs.entry.js +3 -3
  59. package/dist/cjs/br-radio-group.cjs.entry.js +4 -4
  60. package/dist/cjs/br-radio.cjs.entry.js +4 -4
  61. package/dist/cjs/br-scrim.cjs.entry.js +3 -3
  62. package/dist/cjs/br-select-input_3.cjs.entry.js +308 -101
  63. package/dist/cjs/br-sign-in.cjs.entry.js +3 -3
  64. package/dist/cjs/br-skip-link-item.cjs.entry.js +1 -1
  65. package/dist/cjs/br-skip-link.cjs.entry.js +2 -2
  66. package/dist/cjs/br-skiplink-item.cjs.entry.js +2 -2
  67. package/dist/cjs/br-slider.cjs.entry.js +3 -3
  68. package/dist/cjs/br-step_2.cjs.entry.js +6 -6
  69. package/dist/cjs/br-switch.cjs.entry.js +4 -4
  70. package/dist/cjs/br-tab-item.cjs.entry.js +2 -2
  71. package/dist/cjs/br-tab.cjs.entry.js +4 -4
  72. package/dist/cjs/br-table-body.cjs.entry.js +2 -2
  73. package/dist/cjs/br-table-cell.cjs.entry.js +2 -2
  74. package/dist/cjs/br-table-header-cell.cjs.entry.js +2 -2
  75. package/dist/cjs/br-table-header.cjs.entry.js +2 -2
  76. package/dist/cjs/br-table-row.cjs.entry.js +2 -2
  77. package/dist/cjs/br-table.cjs.entry.js +2 -2
  78. package/dist/cjs/br-tag.cjs.entry.js +4 -4
  79. package/dist/cjs/br-textarea.cjs.entry.js +3 -3
  80. package/dist/cjs/br-tooltip.cjs.entry.js +2 -2
  81. package/dist/cjs/br-upload.cjs.entry.js +8 -24
  82. package/dist/cjs/br-wizard-panel.cjs.entry.js +2 -2
  83. package/dist/cjs/br-wizard.cjs.entry.js +2 -2
  84. package/dist/cjs/{datetime-picker-constants-B5pWeOn1.js → datetime-picker-constants-CTf1kVJ1.js} +21 -5
  85. package/dist/cjs/format-bytes-Cs8SH2w0.js +24 -0
  86. package/dist/cjs/{iconify-icon-DfODV9bf.js → iconify-icon-LjavbM-D.js} +103 -57
  87. package/dist/cjs/index-Bc30P_6z.js +14 -14
  88. package/dist/cjs/{index-C92n55ch.js → index-Caoez3xb.js} +75 -27
  89. package/dist/cjs/index.cjs.js +2 -2
  90. package/dist/cjs/{datetime-picker-props-validation-DmNKSXsy.js → isValid-DgJ-noPS.js} +1 -483
  91. package/dist/cjs/loader.cjs.js +1 -1
  92. package/dist/cjs/select.utils-C38f5Kea.js +62 -0
  93. package/dist/cjs/{slot-DAllytTj.js → slot-CjaqqX7y.js} +1 -1
  94. package/dist/cjs/webcomponents.cjs.js +1 -1
  95. package/dist/collection/components/avatar/avatar.css +1 -1
  96. package/dist/collection/components/avatar/avatar.js +21 -21
  97. package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +4 -12
  98. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  99. package/dist/collection/components/breadcrumb/breadcrumb.js +32 -27
  100. package/dist/collection/components/breadcrumb/crumb/crumb.js +2 -13
  101. package/dist/collection/components/button/button.css +1 -1
  102. package/dist/collection/components/button/button.js +21 -21
  103. package/dist/collection/components/card/card.css +1 -1
  104. package/dist/collection/components/card/card.js +20 -22
  105. package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
  106. package/dist/collection/components/carousel/carousel-page/carousel-page.js +3 -13
  107. package/dist/collection/components/carousel/carousel.css +1 -1
  108. package/dist/collection/components/carousel/carousel.js +23 -30
  109. package/dist/collection/components/checkbox/checkbox.css +1 -1
  110. package/dist/collection/components/checkbox/checkbox.js +18 -24
  111. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  112. package/dist/collection/components/checkbox-group/checkbox-group.js +19 -20
  113. package/dist/collection/components/checkgroup/checkgroup.js +2 -14
  114. package/dist/collection/components/collapse/collapse.css +1 -1
  115. package/dist/collection/components/collapse/collapse.js +25 -21
  116. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
  117. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +3 -16
  118. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
  119. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +3 -16
  120. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
  121. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +3 -16
  122. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
  123. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +3 -15
  124. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
  125. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +3 -14
  126. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
  127. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +2 -13
  128. package/dist/collection/components/cookiebar/cookiebar.css +1 -1
  129. package/dist/collection/components/cookiebar/cookiebar.js +32 -27
  130. package/dist/collection/components/datetime-picker/date-picker/date-picker-locale.js +73 -26
  131. package/dist/collection/components/datetime-picker/date-picker/date-picker-props-validation.js +14 -13
  132. package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
  133. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +474 -321
  134. package/dist/collection/components/datetime-picker/datetime-input/datetime-input-constants.js +59 -0
  135. package/dist/collection/components/datetime-picker/datetime-input/datetime-input-props-validation.js +19 -15
  136. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
  137. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +370 -218
  138. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.types.js +1 -0
  139. package/dist/collection/components/datetime-picker/datetime-picker-constants.js +19 -5
  140. package/dist/collection/components/datetime-picker/datetime-picker-form-associated.js +92 -11
  141. package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +52 -33
  142. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  143. package/dist/collection/components/datetime-picker/datetime-picker.js +917 -368
  144. package/dist/collection/components/datetime-picker/datetime-picker.utils.js +62 -49
  145. package/dist/collection/components/datetime-picker/time-picker/time-picker-constants.js +3 -2
  146. package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
  147. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +145 -92
  148. package/dist/collection/components/divider/divider.css +1 -1
  149. package/dist/collection/components/divider/divider.js +15 -19
  150. package/dist/collection/components/dropdown/dropdown.css +1 -1
  151. package/dist/collection/components/dropdown/dropdown.js +22 -21
  152. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  153. package/dist/collection/components/footer/footer-category/footer-category.js +4 -17
  154. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  155. package/dist/collection/components/footer/footer-item/footer-item.js +3 -16
  156. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  157. package/dist/collection/components/footer/footer-legal/footer-legal.js +2 -16
  158. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  159. package/dist/collection/components/footer/footer-logo/footer-logo.js +3 -16
  160. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  161. package/dist/collection/components/footer/footer-social/footer-social.js +3 -15
  162. package/dist/collection/components/footer/footer.css +1 -1
  163. package/dist/collection/components/footer/footer.js +25 -29
  164. package/dist/collection/components/header/header-function/header-function.css +1 -1
  165. package/dist/collection/components/header/header-function/header-function.js +10 -14
  166. package/dist/collection/components/header/header-link/header-link.css +1 -1
  167. package/dist/collection/components/header/header-link/header-link.js +3 -16
  168. package/dist/collection/components/header/header-list/header-list.css +1 -1
  169. package/dist/collection/components/header/header-list/header-list.js +3 -16
  170. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  171. package/dist/collection/components/header/header-logo/header-logo.js +3 -16
  172. package/dist/collection/components/header/header.css +1 -1
  173. package/dist/collection/components/header/header.js +30 -27
  174. package/dist/collection/components/icon/icon.css +1 -1
  175. package/dist/collection/components/icon/icon.js +22 -17
  176. package/dist/collection/components/input/input.css +1 -1
  177. package/dist/collection/components/input/input.js +125 -30
  178. package/dist/collection/components/item/item.css +1 -1
  179. package/dist/collection/components/item/item.js +18 -22
  180. package/dist/collection/components/link/link.css +1 -1
  181. package/dist/collection/components/link/link.js +25 -29
  182. package/dist/collection/components/list/list.css +1 -1
  183. package/dist/collection/components/list/list.js +17 -21
  184. package/dist/collection/components/loading/loading.css +1 -1
  185. package/dist/collection/components/loading/loading.js +17 -24
  186. package/dist/collection/components/magic-button/magic-button.css +1 -1
  187. package/dist/collection/components/magic-button/magic-button.js +13 -20
  188. package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
  189. package/dist/collection/components/menu/menu-group/menu-group.js +3 -16
  190. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  191. package/dist/collection/components/menu/menu-header/menu-header.js +3 -16
  192. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  193. package/dist/collection/components/menu/menu-info/menu-info.js +2 -15
  194. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  195. package/dist/collection/components/menu/menu-item/menu-item.js +3 -16
  196. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  197. package/dist/collection/components/menu/menu-link/menu-link.js +5 -17
  198. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  199. package/dist/collection/components/menu/menu-list/menu-list.js +2 -15
  200. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  201. package/dist/collection/components/menu/menu-logo/menu-logo.js +2 -15
  202. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  203. package/dist/collection/components/menu/menu-social/menu-social.js +2 -15
  204. package/dist/collection/components/menu/menu.css +1 -1
  205. package/dist/collection/components/menu/menu.js +28 -35
  206. package/dist/collection/components/message/message.css +1 -1
  207. package/dist/collection/components/message/message.js +22 -25
  208. package/dist/collection/components/modal/modal.css +1 -1
  209. package/dist/collection/components/modal/modal.js +18 -21
  210. package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
  211. package/dist/collection/components/notification/notification-body/notification-body.js +3 -13
  212. package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
  213. package/dist/collection/components/notification/notification-header/notification-header.js +3 -14
  214. package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
  215. package/dist/collection/components/notification/notification-item/notification-item.js +3 -16
  216. package/dist/collection/components/notification/notification.css +1 -1
  217. package/dist/collection/components/notification/notification.js +20 -29
  218. package/dist/collection/components/pagination/pagination.css +1 -1
  219. package/dist/collection/components/pagination/pagination.js +15 -23
  220. package/dist/collection/components/radio/radio.css +1 -1
  221. package/dist/collection/components/radio/radio.js +17 -20
  222. package/dist/collection/components/radio-group/radio-group.css +1 -1
  223. package/dist/collection/components/radio-group/radio-group.js +20 -20
  224. package/dist/collection/components/scrim/scrim.css +1 -1
  225. package/dist/collection/components/scrim/scrim.js +14 -17
  226. package/dist/collection/components/select/select-input/select-input.css +1 -1
  227. package/dist/collection/components/select/select-input/select-input.js +157 -27
  228. package/dist/collection/components/select/select-list/select-list.css +1 -1
  229. package/dist/collection/components/select/select-list/select-list.js +269 -80
  230. package/dist/collection/components/select/select-option/select-option.css +1 -1
  231. package/dist/collection/components/select/select-option/select-option.js +20 -16
  232. package/dist/collection/components/select/select.css +1 -1
  233. package/dist/collection/components/select/select.js +367 -180
  234. package/dist/collection/components/select/select.utils.js +26 -7
  235. package/dist/collection/components/sign-in/sign-in.css +1 -1
  236. package/dist/collection/components/sign-in/sign-in.js +12 -16
  237. package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +8 -4
  238. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  239. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +5 -15
  240. package/dist/collection/components/skip-link/skip-link.css +1 -1
  241. package/dist/collection/components/skip-link/skip-link.js +18 -24
  242. package/dist/collection/components/slider/slider.css +1 -1
  243. package/dist/collection/components/slider/slider.js +15 -25
  244. package/dist/collection/components/step/step-item/step-item.css +1 -1
  245. package/dist/collection/components/step/step-item/step-item.js +5 -15
  246. package/dist/collection/components/step/step.css +1 -1
  247. package/dist/collection/components/step/step.js +16 -25
  248. package/dist/collection/components/switch/switch.css +1 -1
  249. package/dist/collection/components/switch/switch.js +16 -20
  250. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  251. package/dist/collection/components/tab/tab-item/tab-item.js +5 -15
  252. package/dist/collection/components/tab/tab.css +1 -1
  253. package/dist/collection/components/tab/tab.js +22 -29
  254. package/dist/collection/components/table/table-body/table-body.css +1 -1
  255. package/dist/collection/components/table/table-body/table-body.js +3 -13
  256. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  257. package/dist/collection/components/table/table-cell/table-cell.js +3 -12
  258. package/dist/collection/components/table/table-header/table-header.css +1 -1
  259. package/dist/collection/components/table/table-header/table-header.js +3 -13
  260. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  261. package/dist/collection/components/table/table-header-cell/table-header-cell.js +3 -13
  262. package/dist/collection/components/table/table-row/table-row.css +1 -1
  263. package/dist/collection/components/table/table-row/table-row.js +3 -13
  264. package/dist/collection/components/table/table.css +1 -1
  265. package/dist/collection/components/table/table.js +25 -32
  266. package/dist/collection/components/tag/tag.css +1 -1
  267. package/dist/collection/components/tag/tag.js +17 -26
  268. package/dist/collection/components/textarea/textarea.css +1 -1
  269. package/dist/collection/components/textarea/textarea.js +14 -22
  270. package/dist/collection/components/tooltip/tooltip.css +1 -1
  271. package/dist/collection/components/tooltip/tooltip.js +13 -19
  272. package/dist/collection/components/upload/upload.css +1 -1
  273. package/dist/collection/components/upload/upload.js +36 -29
  274. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  275. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +3 -13
  276. package/dist/collection/components/wizard/wizard.css +1 -1
  277. package/dist/collection/components/wizard/wizard.js +22 -26
  278. package/dist/collection/pages/components/select/remote-options.js +87 -0
  279. package/dist/collection/shared/utils/slot.js +1 -1
  280. package/dist/components/br-avatar.js +1 -1
  281. package/dist/components/br-breadcrumb-item.js +1 -1
  282. package/dist/components/br-breadcrumb.js +1 -1
  283. package/dist/components/br-button.js +1 -1
  284. package/dist/components/br-card.js +1 -1
  285. package/dist/components/br-carousel-page.js +1 -1
  286. package/dist/components/br-carousel.js +1 -1
  287. package/dist/components/br-checkbox-group.js +1 -1
  288. package/dist/components/br-checkbox.js +1 -1
  289. package/dist/components/br-checkgroup.js +1 -1
  290. package/dist/components/br-collapse.js +1 -1
  291. package/dist/components/br-cookiebar-cookie.js +1 -1
  292. package/dist/components/br-cookiebar-group.js +1 -1
  293. package/dist/components/br-cookiebar-header.js +1 -1
  294. package/dist/components/br-cookiebar-link.js +1 -1
  295. package/dist/components/br-cookiebar-note-group.js +1 -1
  296. package/dist/components/br-cookiebar-note.js +1 -1
  297. package/dist/components/br-cookiebar.js +1 -1
  298. package/dist/components/br-crumb.js +1 -1
  299. package/dist/components/br-date-picker.js +1 -1
  300. package/dist/components/br-datetime-input.js +1 -1
  301. package/dist/components/br-datetime-picker.js +1 -1
  302. package/dist/components/br-divider.js +1 -1
  303. package/dist/components/br-dropdown.js +1 -1
  304. package/dist/components/br-footer-category.js +1 -1
  305. package/dist/components/br-footer-item.js +1 -1
  306. package/dist/components/br-footer-legal.js +1 -1
  307. package/dist/components/br-footer-logo.js +1 -1
  308. package/dist/components/br-footer-social.js +1 -1
  309. package/dist/components/br-footer.js +1 -1
  310. package/dist/components/br-header-function.js +1 -1
  311. package/dist/components/br-header-link.js +1 -1
  312. package/dist/components/br-header-list.js +1 -1
  313. package/dist/components/br-header-logo.js +1 -1
  314. package/dist/components/br-header.js +1 -1
  315. package/dist/components/br-icon.js +1 -1
  316. package/dist/components/br-input.js +1 -1
  317. package/dist/components/br-item.js +1 -1
  318. package/dist/components/br-link.js +1 -1
  319. package/dist/components/br-list.js +1 -1
  320. package/dist/components/br-loading.js +1 -1
  321. package/dist/components/br-magic-button.js +1 -1
  322. package/dist/components/br-menu-group.js +1 -1
  323. package/dist/components/br-menu-header.js +1 -1
  324. package/dist/components/br-menu-info.js +1 -1
  325. package/dist/components/br-menu-item.js +1 -1
  326. package/dist/components/br-menu-link.js +1 -1
  327. package/dist/components/br-menu-list.js +1 -1
  328. package/dist/components/br-menu-logo.js +1 -1
  329. package/dist/components/br-menu-social.js +1 -1
  330. package/dist/components/br-menu.js +1 -1
  331. package/dist/components/br-message.js +1 -1
  332. package/dist/components/br-modal.js +1 -1
  333. package/dist/components/br-notification-body.js +1 -1
  334. package/dist/components/br-notification-header.js +1 -1
  335. package/dist/components/br-notification-item.js +1 -1
  336. package/dist/components/br-notification.js +1 -1
  337. package/dist/components/br-pagination.js +1 -1
  338. package/dist/components/br-radio-group.js +1 -1
  339. package/dist/components/br-radio.js +1 -1
  340. package/dist/components/br-scrim.js +1 -1
  341. package/dist/components/br-select-input.js +1 -1
  342. package/dist/components/br-select-list.js +1 -1
  343. package/dist/components/br-select-option.js +1 -1
  344. package/dist/components/br-select.js +1 -1
  345. package/dist/components/br-sign-in.js +1 -1
  346. package/dist/components/br-skip-link-item.js +1 -1
  347. package/dist/components/br-skip-link.js +1 -1
  348. package/dist/components/br-skiplink-item.js +1 -1
  349. package/dist/components/br-slider.js +1 -1
  350. package/dist/components/br-step-item.js +1 -1
  351. package/dist/components/br-step.js +1 -1
  352. package/dist/components/br-switch.js +1 -1
  353. package/dist/components/br-tab-item.js +1 -1
  354. package/dist/components/br-tab.js +1 -1
  355. package/dist/components/br-table-body.js +1 -1
  356. package/dist/components/br-table-cell.js +1 -1
  357. package/dist/components/br-table-header-cell.js +1 -1
  358. package/dist/components/br-table-header.js +1 -1
  359. package/dist/components/br-table-row.js +1 -1
  360. package/dist/components/br-table.js +1 -1
  361. package/dist/components/br-tag.js +1 -1
  362. package/dist/components/br-textarea.js +1 -1
  363. package/dist/components/br-time-picker.js +1 -1
  364. package/dist/components/br-tooltip.js +1 -1
  365. package/dist/components/br-upload.js +1 -1
  366. package/dist/components/br-wizard-panel.js +1 -1
  367. package/dist/components/br-wizard.js +1 -1
  368. package/dist/components/index.js +1 -1
  369. package/dist/components/p-448Z5r2f.js +5 -0
  370. package/dist/{webcomponents/p-5f422a69.entry.js → components/p-AhfgJCUp.js} +1 -1
  371. package/dist/components/p-AoNL6BaW.js +5 -0
  372. package/dist/components/p-B468MCYC.js +5 -0
  373. package/dist/components/p-B7bNfmgh.js +5 -0
  374. package/dist/components/p-B985Ov_x.js +5 -0
  375. package/dist/components/p-BOWQIHQA.js +5 -0
  376. package/dist/components/p-BPQrgCRr.js +5 -0
  377. package/dist/components/p-BwQT0fOJ.js +5 -0
  378. package/dist/components/p-CAgbUwsx.js +5 -0
  379. package/dist/components/p-CFXey8i8.js +5 -0
  380. package/dist/components/p-CVz_akHx.js +5 -0
  381. package/dist/components/p-CW8xwk6J.js +5 -0
  382. package/dist/components/p-CYZVdKeO.js +5 -0
  383. package/dist/components/p-C_DC6oQW.js +16 -0
  384. package/dist/components/p-CeWbZN7V.js +5 -0
  385. package/dist/components/p-CyXVsiz9.js +5 -0
  386. package/dist/components/p-DDe0tQEO.js +5 -0
  387. package/dist/components/{p-CZZVc2gK.js → p-DJKZ8ktB.js} +1 -1
  388. package/dist/components/p-DRsZ9GNg.js +5 -0
  389. package/dist/components/p-DU54cqCf.js +5 -0
  390. package/dist/components/p-DVJlmlEX.js +5 -0
  391. package/dist/components/p-DcMjwTqu.js +5 -0
  392. package/dist/components/p-Dd1qCWAK.js +5 -0
  393. package/dist/components/p-Dn36Mj2E.js +5 -0
  394. package/dist/components/p-DoWy_P8b.js +5 -0
  395. package/dist/components/p-HbhTnepI.js +5 -0
  396. package/dist/components/{p-BcqVlof7.js → p-JkJjzmGm.js} +1 -1
  397. package/dist/components/{p-Nze3Utvd.js → p-Or3FLzbz.js} +1 -1
  398. package/dist/components/p-SWQlgYWR.js +5 -0
  399. package/dist/components/p-Zb9nyfTY.js +5 -0
  400. package/dist/components/p-jvKQA6x7.js +5 -0
  401. package/dist/components/p-pQb-3jFY.js +5 -0
  402. package/dist/components/p-qX6sHxOk.js +5 -0
  403. package/dist/esm/br-avatar.entry.js +3 -3
  404. package/dist/esm/br-breadcrumb-item.entry.js +1 -1
  405. package/dist/esm/br-breadcrumb.entry.js +3 -3
  406. package/dist/esm/br-button_2.entry.js +4 -4
  407. package/dist/esm/br-card.entry.js +3 -3
  408. package/dist/esm/br-carousel-page.entry.js +2 -2
  409. package/dist/esm/br-carousel.entry.js +3 -3
  410. package/dist/esm/br-checkbox-group.entry.js +3 -3
  411. package/dist/esm/br-checkbox.entry.js +5 -5
  412. package/dist/esm/br-checkgroup.entry.js +1 -1
  413. package/dist/esm/br-collapse_2.entry.js +6 -6
  414. package/dist/esm/br-cookiebar-cookie.entry.js +2 -2
  415. package/dist/esm/br-cookiebar-group.entry.js +2 -2
  416. package/dist/esm/br-cookiebar-header.entry.js +2 -2
  417. package/dist/esm/br-cookiebar-link.entry.js +2 -2
  418. package/dist/esm/br-cookiebar-note-group.entry.js +1 -1
  419. package/dist/esm/br-cookiebar-note.entry.js +2 -2
  420. package/dist/esm/br-cookiebar.entry.js +4 -4
  421. package/dist/esm/br-crumb.entry.js +1 -1
  422. package/dist/esm/br-date-picker_3.entry.js +966 -527
  423. package/dist/esm/br-datetime-picker.entry.js +1316 -280
  424. package/dist/esm/br-divider.entry.js +3 -3
  425. package/dist/esm/br-dropdown_2.entry.js +281 -138
  426. package/dist/esm/br-footer-category.entry.js +3 -3
  427. package/dist/esm/br-footer-item.entry.js +2 -2
  428. package/dist/esm/br-footer-legal.entry.js +2 -2
  429. package/dist/esm/br-footer-logo.entry.js +2 -2
  430. package/dist/esm/br-footer-social.entry.js +2 -2
  431. package/dist/esm/br-footer.entry.js +4 -4
  432. package/dist/esm/br-header-function.entry.js +2 -2
  433. package/dist/esm/br-header-link.entry.js +2 -2
  434. package/dist/esm/br-header-list.entry.js +3 -3
  435. package/dist/esm/br-header-logo.entry.js +2 -2
  436. package/dist/esm/br-header.entry.js +2 -2
  437. package/dist/esm/br-icon.entry.js +3 -3
  438. package/dist/esm/br-input.entry.js +65 -11
  439. package/dist/esm/br-item.entry.js +3 -3
  440. package/dist/esm/br-link.entry.js +8 -8
  441. package/dist/esm/br-loading.entry.js +2 -2
  442. package/dist/esm/br-magic-button.entry.js +2 -2
  443. package/dist/esm/br-menu-group.entry.js +2 -2
  444. package/dist/esm/br-menu-header.entry.js +2 -2
  445. package/dist/esm/br-menu-info.entry.js +2 -2
  446. package/dist/esm/br-menu-item.entry.js +2 -2
  447. package/dist/esm/br-menu-link.entry.js +2 -2
  448. package/dist/esm/br-menu-list.entry.js +1 -1
  449. package/dist/esm/br-menu-logo.entry.js +2 -2
  450. package/dist/esm/br-menu-social.entry.js +1 -1
  451. package/dist/esm/br-menu.entry.js +5 -5
  452. package/dist/esm/br-modal.entry.js +1 -1
  453. package/dist/esm/br-notification-body.entry.js +2 -2
  454. package/dist/esm/br-notification-header.entry.js +2 -2
  455. package/dist/esm/br-notification-item.entry.js +2 -2
  456. package/dist/esm/br-notification.entry.js +4 -4
  457. package/dist/esm/br-pagination.entry.js +3 -3
  458. package/dist/esm/br-radio-group.entry.js +5 -5
  459. package/dist/esm/br-radio.entry.js +5 -5
  460. package/dist/esm/br-scrim.entry.js +3 -3
  461. package/dist/esm/br-select-input_3.entry.js +308 -101
  462. package/dist/esm/br-sign-in.entry.js +3 -3
  463. package/dist/esm/br-skip-link-item.entry.js +1 -1
  464. package/dist/esm/br-skip-link.entry.js +2 -2
  465. package/dist/esm/br-skiplink-item.entry.js +2 -2
  466. package/dist/esm/br-slider.entry.js +4 -4
  467. package/dist/esm/br-step_2.entry.js +6 -6
  468. package/dist/esm/br-switch.entry.js +5 -5
  469. package/dist/esm/br-tab-item.entry.js +2 -2
  470. package/dist/esm/br-tab.entry.js +4 -4
  471. package/dist/esm/br-table-body.entry.js +2 -2
  472. package/dist/esm/br-table-cell.entry.js +2 -2
  473. package/dist/esm/br-table-header-cell.entry.js +2 -2
  474. package/dist/esm/br-table-header.entry.js +2 -2
  475. package/dist/esm/br-table-row.entry.js +2 -2
  476. package/dist/esm/br-table.entry.js +2 -2
  477. package/dist/esm/br-tag.entry.js +5 -5
  478. package/dist/esm/br-textarea.entry.js +4 -4
  479. package/dist/esm/br-tooltip.entry.js +3 -3
  480. package/dist/esm/br-upload.entry.js +6 -22
  481. package/dist/esm/br-wizard-panel.entry.js +2 -2
  482. package/dist/esm/br-wizard.entry.js +2 -2
  483. package/dist/esm/{datetime-picker-constants-BtRPYRvA.js → datetime-picker-constants-1l4_-FEJ.js} +20 -6
  484. package/dist/esm/{event-CfuJQ1DY.js → event-6Da1SZ3J.js} +1 -1
  485. package/dist/esm/format-bytes-B7bNfmgh.js +22 -0
  486. package/dist/esm/{iconify-icon-D3usVJE2.js → iconify-icon-C_DC6oQW.js} +103 -57
  487. package/dist/esm/{index-BQPOWxe5.js → index-BQRBKuY0.js} +75 -28
  488. package/dist/esm/index-ConyRdJe.js +14 -14
  489. package/dist/esm/index.js +2 -2
  490. package/dist/esm/{datetime-picker-props-validation-BeTcUTnE.js → isValid-wU7S6MI2.js} +2 -477
  491. package/dist/esm/loader.js +1 -1
  492. package/dist/esm/select.utils-BYsh2ZdE.js +57 -0
  493. package/dist/esm/{slot-BIG-yees.js → slot-Bt01zQ7-.js} +1 -1
  494. package/dist/esm/webcomponents.js +1 -1
  495. package/dist/hydrate/index.js +4459 -3577
  496. package/dist/hydrate/index.mjs +4459 -3577
  497. package/dist/types/components/avatar/avatar.d.ts +20 -20
  498. package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +3 -11
  499. package/dist/types/components/breadcrumb/breadcrumb.d.ts +30 -25
  500. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +1 -12
  501. package/dist/types/components/button/button.d.ts +20 -20
  502. package/dist/types/components/card/card.d.ts +19 -21
  503. package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +2 -12
  504. package/dist/types/components/carousel/carousel.d.ts +22 -29
  505. package/dist/types/components/checkbox/checkbox.d.ts +16 -22
  506. package/dist/types/components/checkbox-group/checkbox-group.d.ts +17 -18
  507. package/dist/types/components/checkgroup/checkgroup.d.ts +1 -13
  508. package/dist/types/components/collapse/collapse.d.ts +24 -20
  509. package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +2 -15
  510. package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +2 -15
  511. package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +2 -15
  512. package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +2 -14
  513. package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +2 -13
  514. package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +2 -13
  515. package/dist/types/components/cookiebar/cookiebar.d.ts +30 -25
  516. package/dist/types/components/datetime-picker/date-picker/date-picker-locale.d.ts +20 -12
  517. package/dist/types/components/datetime-picker/date-picker/date-picker-props-validation.d.ts +14 -13
  518. package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +313 -164
  519. package/dist/types/components/datetime-picker/datetime-input/datetime-input-constants.d.ts +14 -0
  520. package/dist/types/components/datetime-picker/datetime-input/datetime-input-props-validation.d.ts +19 -15
  521. package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +226 -105
  522. package/dist/types/components/datetime-picker/datetime-input/datetime-input.types.d.ts +36 -0
  523. package/dist/types/components/datetime-picker/datetime-picker-constants.d.ts +19 -5
  524. package/dist/types/components/datetime-picker/datetime-picker-form-associated.d.ts +32 -5
  525. package/dist/types/components/datetime-picker/datetime-picker-props-validation.d.ts +22 -24
  526. package/dist/types/components/datetime-picker/datetime-picker.d.ts +510 -241
  527. package/dist/types/components/datetime-picker/datetime-picker.types.d.ts +75 -21
  528. package/dist/types/components/datetime-picker/datetime-picker.utils.d.ts +53 -47
  529. package/dist/types/components/datetime-picker/time-picker/time-picker-constants.d.ts +3 -2
  530. package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +123 -62
  531. package/dist/types/components/divider/divider.d.ts +14 -18
  532. package/dist/types/components/dropdown/dropdown.d.ts +21 -20
  533. package/dist/types/components/footer/footer-category/footer-category.d.ts +2 -15
  534. package/dist/types/components/footer/footer-item/footer-item.d.ts +2 -15
  535. package/dist/types/components/footer/footer-legal/footer-legal.d.ts +1 -15
  536. package/dist/types/components/footer/footer-logo/footer-logo.d.ts +2 -15
  537. package/dist/types/components/footer/footer-social/footer-social.d.ts +2 -14
  538. package/dist/types/components/footer/footer.d.ts +23 -27
  539. package/dist/types/components/header/header-function/header-function.d.ts +9 -13
  540. package/dist/types/components/header/header-link/header-link.d.ts +2 -15
  541. package/dist/types/components/header/header-list/header-list.d.ts +2 -15
  542. package/dist/types/components/header/header-logo/header-logo.d.ts +2 -15
  543. package/dist/types/components/header/header.d.ts +29 -26
  544. package/dist/types/components/icon/icon.d.ts +21 -16
  545. package/dist/types/components/input/input.d.ts +48 -23
  546. package/dist/types/components/input/input.types.d.ts +4 -0
  547. package/dist/types/components/item/item.d.ts +17 -21
  548. package/dist/types/components/link/link.d.ts +18 -22
  549. package/dist/types/components/list/list.d.ts +16 -20
  550. package/dist/types/components/loading/loading.d.ts +16 -23
  551. package/dist/types/components/magic-button/magic-button.d.ts +12 -19
  552. package/dist/types/components/menu/menu-group/menu-group.d.ts +2 -15
  553. package/dist/types/components/menu/menu-header/menu-header.d.ts +2 -15
  554. package/dist/types/components/menu/menu-info/menu-info.d.ts +1 -14
  555. package/dist/types/components/menu/menu-item/menu-item.d.ts +2 -15
  556. package/dist/types/components/menu/menu-link/menu-link.d.ts +4 -16
  557. package/dist/types/components/menu/menu-list/menu-list.d.ts +2 -15
  558. package/dist/types/components/menu/menu-logo/menu-logo.d.ts +1 -14
  559. package/dist/types/components/menu/menu-social/menu-social.d.ts +2 -15
  560. package/dist/types/components/menu/menu.d.ts +25 -32
  561. package/dist/types/components/message/message.d.ts +21 -24
  562. package/dist/types/components/modal/modal.d.ts +18 -21
  563. package/dist/types/components/notification/notification-body/notification-body.d.ts +2 -12
  564. package/dist/types/components/notification/notification-header/notification-header.d.ts +2 -13
  565. package/dist/types/components/notification/notification-item/notification-item.d.ts +2 -15
  566. package/dist/types/components/notification/notification.d.ts +18 -27
  567. package/dist/types/components/pagination/pagination.d.ts +13 -21
  568. package/dist/types/components/radio/radio.d.ts +15 -18
  569. package/dist/types/components/radio-group/radio-group.d.ts +18 -18
  570. package/dist/types/components/scrim/scrim.d.ts +12 -15
  571. package/dist/types/components/select/select-input/select-input.d.ts +20 -12
  572. package/dist/types/components/select/select-list/select-list.d.ts +27 -14
  573. package/dist/types/components/select/select-option/select-option.d.ts +6 -10
  574. package/dist/types/components/select/select.d.ts +75 -87
  575. package/dist/types/components/select/select.types.d.ts +12 -0
  576. package/dist/types/components/select/select.utils.d.ts +3 -0
  577. package/dist/types/components/sign-in/sign-in.d.ts +11 -15
  578. package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +7 -3
  579. package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +4 -14
  580. package/dist/types/components/skip-link/skip-link.d.ts +17 -23
  581. package/dist/types/components/slider/slider.d.ts +14 -24
  582. package/dist/types/components/step/step-item/step-item.d.ts +2 -12
  583. package/dist/types/components/step/step.d.ts +15 -24
  584. package/dist/types/components/switch/switch.d.ts +14 -18
  585. package/dist/types/components/tab/tab-item/tab-item.d.ts +4 -14
  586. package/dist/types/components/tab/tab.d.ts +19 -26
  587. package/dist/types/components/table/table-body/table-body.d.ts +2 -12
  588. package/dist/types/components/table/table-cell/table-cell.d.ts +2 -11
  589. package/dist/types/components/table/table-header/table-header.d.ts +2 -12
  590. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +2 -12
  591. package/dist/types/components/table/table-row/table-row.d.ts +2 -12
  592. package/dist/types/components/table/table.d.ts +24 -31
  593. package/dist/types/components/tag/tag.d.ts +15 -24
  594. package/dist/types/components/textarea/textarea.d.ts +13 -21
  595. package/dist/types/components/tooltip/tooltip.d.ts +12 -18
  596. package/dist/types/components/upload/upload.d.ts +20 -27
  597. package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +2 -12
  598. package/dist/types/components/wizard/wizard.d.ts +21 -25
  599. package/dist/types/components.d.ts +3586 -5062
  600. package/dist/webcomponents/index.esm.js +1 -1
  601. package/dist/webcomponents/p-031a2256.entry.js +5 -0
  602. package/dist/webcomponents/p-0602e5b1.entry.js +5 -0
  603. package/dist/webcomponents/p-079d5f69.entry.js +5 -0
  604. package/dist/webcomponents/p-087ed5e7.entry.js +5 -0
  605. package/dist/webcomponents/p-0d5a9ebf.entry.js +5 -0
  606. package/dist/webcomponents/p-105b4d06.entry.js +5 -0
  607. package/dist/webcomponents/p-11d4edc5.entry.js +5 -0
  608. package/dist/webcomponents/p-12dd22af.entry.js +5 -0
  609. package/dist/webcomponents/p-14aedf0d.entry.js +5 -0
  610. package/dist/webcomponents/p-152482f9.entry.js +5 -0
  611. package/dist/webcomponents/p-19b4b1b7.entry.js +5 -0
  612. package/dist/webcomponents/p-1cd1126e.entry.js +5 -0
  613. package/dist/webcomponents/{p-BtRPYRvA.js → p-1l4_-FEJ.js} +1 -1
  614. package/dist/webcomponents/p-21e10074.entry.js +5 -0
  615. package/dist/webcomponents/p-2271ea84.entry.js +5 -0
  616. package/dist/webcomponents/p-271b1ede.entry.js +5 -0
  617. package/dist/webcomponents/p-28f732fc.entry.js +5 -0
  618. package/dist/webcomponents/{p-c1dafd8d.entry.js → p-2971d38a.entry.js} +1 -1
  619. package/dist/{components/p-DOJ1vYOl.js → webcomponents/p-2ac48875.entry.js} +1 -1
  620. package/dist/webcomponents/p-2b1a919c.entry.js +5 -0
  621. package/dist/webcomponents/p-2da57966.entry.js +5 -0
  622. package/dist/webcomponents/p-2e81b0b3.entry.js +5 -0
  623. package/dist/webcomponents/p-2eececed.entry.js +5 -0
  624. package/dist/webcomponents/{p-513ee754.entry.js → p-2f904c4a.entry.js} +1 -1
  625. package/dist/webcomponents/p-32414f1c.entry.js +5 -0
  626. package/dist/webcomponents/{p-5a7c2031.entry.js → p-324afbce.entry.js} +1 -1
  627. package/dist/webcomponents/p-32ea6342.entry.js +5 -0
  628. package/dist/webcomponents/p-330ec8ab.entry.js +5 -0
  629. package/dist/webcomponents/p-374f83b1.entry.js +5 -0
  630. package/dist/webcomponents/p-3926cc91.entry.js +5 -0
  631. package/dist/webcomponents/p-39a7826d.entry.js +5 -0
  632. package/dist/webcomponents/p-3bcc2c58.entry.js +5 -0
  633. package/dist/webcomponents/p-3c7ce0e4.entry.js +5 -0
  634. package/dist/webcomponents/p-467842ca.entry.js +5 -0
  635. package/dist/webcomponents/p-53550e8c.entry.js +5 -0
  636. package/dist/webcomponents/p-53e71a8a.entry.js +5 -0
  637. package/dist/webcomponents/p-5528b466.entry.js +5 -0
  638. package/dist/webcomponents/p-55e0822d.entry.js +5 -0
  639. package/dist/webcomponents/p-58bacbe1.entry.js +5 -0
  640. package/dist/webcomponents/p-5a5ed7d8.entry.js +5 -0
  641. package/dist/webcomponents/p-621f0fa8.entry.js +5 -0
  642. package/dist/webcomponents/p-6514a75d.entry.js +5 -0
  643. package/dist/webcomponents/{p-19a38e20.entry.js → p-678b43a6.entry.js} +1 -1
  644. package/dist/webcomponents/{p-CfuJQ1DY.js → p-6Da1SZ3J.js} +1 -1
  645. package/dist/webcomponents/p-6b6be415.entry.js +5 -0
  646. package/dist/webcomponents/{p-0d2ca2f7.entry.js → p-6d58ab4f.entry.js} +1 -1
  647. package/dist/webcomponents/p-6ff9b26e.entry.js +5 -0
  648. package/dist/webcomponents/p-84dfbfdd.entry.js +5 -0
  649. package/dist/webcomponents/{p-d5d2205c.entry.js → p-85c8d060.entry.js} +1 -1
  650. package/dist/webcomponents/p-913d6f28.entry.js +5 -0
  651. package/dist/webcomponents/{p-94848046.entry.js → p-975ea5c7.entry.js} +1 -1
  652. package/dist/webcomponents/p-992167bc.entry.js +5 -0
  653. package/dist/webcomponents/p-B7bNfmgh.js +5 -0
  654. package/dist/webcomponents/p-BYsh2ZdE.js +5 -0
  655. package/dist/webcomponents/p-C_DC6oQW.js +16 -0
  656. package/dist/webcomponents/{p-DV-iW9Aj.js → p-CpE_G6IZ.js} +1 -1
  657. package/dist/webcomponents/p-DnwERaeQ.js +5 -0
  658. package/dist/webcomponents/p-a21872bf.entry.js +5 -0
  659. package/dist/webcomponents/{p-0b0cf355.entry.js → p-a9f16a65.entry.js} +1 -1
  660. package/dist/webcomponents/p-b8d4ace3.entry.js +5 -0
  661. package/dist/webcomponents/{p-6850e98e.entry.js → p-bbcde1ea.entry.js} +1 -1
  662. package/dist/webcomponents/p-bbf47e78.entry.js +5 -0
  663. package/dist/webcomponents/p-bf35e506.entry.js +5 -0
  664. package/dist/webcomponents/{p-b02a7218.entry.js → p-c09af3cd.entry.js} +1 -1
  665. package/dist/webcomponents/p-c29268b5.entry.js +5 -0
  666. package/dist/webcomponents/p-c3e61c39.entry.js +5 -0
  667. package/dist/webcomponents/{p-b16590fc.entry.js → p-c6b2545a.entry.js} +1 -1
  668. package/dist/webcomponents/{p-b55425b7.entry.js → p-c6f2f17b.entry.js} +1 -1
  669. package/dist/webcomponents/p-cae39e13.entry.js +5 -0
  670. package/dist/webcomponents/p-cb1e08b1.entry.js +5 -0
  671. package/dist/webcomponents/{p-e94a52ac.entry.js → p-cb690a87.entry.js} +1 -1
  672. package/dist/webcomponents/p-d0be7243.entry.js +5 -0
  673. package/dist/webcomponents/p-d191c6e3.entry.js +5 -0
  674. package/dist/webcomponents/p-d205f3fd.entry.js +5 -0
  675. package/dist/webcomponents/p-d3bd2c40.entry.js +5 -0
  676. package/dist/webcomponents/{p-61977114.entry.js → p-dbeea64e.entry.js} +1 -1
  677. package/dist/webcomponents/p-df475129.entry.js +5 -0
  678. package/dist/webcomponents/p-e0ccf189.entry.js +5 -0
  679. package/dist/webcomponents/p-e121429a.entry.js +5 -0
  680. package/dist/webcomponents/p-e4b968b5.entry.js +5 -0
  681. package/dist/webcomponents/p-e661c024.entry.js +5 -0
  682. package/dist/webcomponents/p-e6c6f305.entry.js +5 -0
  683. package/dist/webcomponents/p-e8291be2.entry.js +5 -0
  684. package/dist/webcomponents/p-eb5806c7.entry.js +5 -0
  685. package/dist/webcomponents/{p-82759002.entry.js → p-ed3fa8ec.entry.js} +1 -1
  686. package/dist/webcomponents/p-f9084f16.entry.js +5 -0
  687. package/dist/webcomponents/{p-4118b878.entry.js → p-fad3aa61.entry.js} +1 -1
  688. package/dist/webcomponents/webcomponents.esm.js +1 -1
  689. package/package.json +2 -2
  690. package/dist/collection/pages/components/select/remote.js +0 -33
  691. package/dist/collection/pages/components/select/virtualized.js +0 -13
  692. package/dist/components/p-0qmYp77w.js +0 -5
  693. package/dist/components/p-5c3rNBXh.js +0 -5
  694. package/dist/components/p-B8oIvH3q.js +0 -5
  695. package/dist/components/p-BECz8XWJ.js +0 -5
  696. package/dist/components/p-BM4Ys6hX.js +0 -5
  697. package/dist/components/p-BXWh9s7p.js +0 -5
  698. package/dist/components/p-BblZlUp2.js +0 -5
  699. package/dist/components/p-Bezou5CQ.js +0 -5
  700. package/dist/components/p-BjeUETWJ.js +0 -5
  701. package/dist/components/p-Cd6udSDt.js +0 -5
  702. package/dist/components/p-Ci0_RqAE.js +0 -5
  703. package/dist/components/p-CuBgClZm.js +0 -5
  704. package/dist/components/p-D0QYZSoP.js +0 -5
  705. package/dist/components/p-D3usVJE2.js +0 -16
  706. package/dist/components/p-D4SWpW6-.js +0 -5
  707. package/dist/components/p-D579DS7x.js +0 -5
  708. package/dist/components/p-D8K7rhHd.js +0 -5
  709. package/dist/components/p-D9nXlCuS.js +0 -5
  710. package/dist/components/p-DKFO6Q_g.js +0 -5
  711. package/dist/components/p-DNJSSCNi.js +0 -5
  712. package/dist/components/p-DYI30IZL.js +0 -5
  713. package/dist/components/p-DcVldfL0.js +0 -5
  714. package/dist/components/p-DhvmHPp4.js +0 -5
  715. package/dist/components/p-DwgiHL0b.js +0 -5
  716. package/dist/components/p-WxDB6Dk4.js +0 -5
  717. package/dist/components/p-ZLoeVagg.js +0 -5
  718. package/dist/components/p-gbYJ9sfc.js +0 -5
  719. package/dist/components/p-uc8ABlC_.js +0 -5
  720. package/dist/components/p-v60ypfxD.js +0 -5
  721. package/dist/webcomponents/p-078bd760.entry.js +0 -5
  722. package/dist/webcomponents/p-07c2cdff.entry.js +0 -5
  723. package/dist/webcomponents/p-09817344.entry.js +0 -5
  724. package/dist/webcomponents/p-0d79ca44.entry.js +0 -5
  725. package/dist/webcomponents/p-0fe3c47b.entry.js +0 -5
  726. package/dist/webcomponents/p-116b53c9.entry.js +0 -5
  727. package/dist/webcomponents/p-1240dae7.entry.js +0 -5
  728. package/dist/webcomponents/p-14ff5865.entry.js +0 -5
  729. package/dist/webcomponents/p-15743a02.entry.js +0 -5
  730. package/dist/webcomponents/p-16cebf49.entry.js +0 -5
  731. package/dist/webcomponents/p-1884b9d3.entry.js +0 -5
  732. package/dist/webcomponents/p-1d36c8fa.entry.js +0 -5
  733. package/dist/webcomponents/p-1fa4b5b2.entry.js +0 -5
  734. package/dist/webcomponents/p-212c069b.entry.js +0 -5
  735. package/dist/webcomponents/p-23f37cd6.entry.js +0 -5
  736. package/dist/webcomponents/p-24502b63.entry.js +0 -5
  737. package/dist/webcomponents/p-27fb81f3.entry.js +0 -5
  738. package/dist/webcomponents/p-28844490.entry.js +0 -5
  739. package/dist/webcomponents/p-2b41bdcc.entry.js +0 -5
  740. package/dist/webcomponents/p-2cb1e09b.entry.js +0 -5
  741. package/dist/webcomponents/p-2fcda70b.entry.js +0 -5
  742. package/dist/webcomponents/p-3378300c.entry.js +0 -5
  743. package/dist/webcomponents/p-3ae9cf69.entry.js +0 -5
  744. package/dist/webcomponents/p-3b79cd49.entry.js +0 -5
  745. package/dist/webcomponents/p-3c1513ec.entry.js +0 -5
  746. package/dist/webcomponents/p-4534a3c3.entry.js +0 -5
  747. package/dist/webcomponents/p-48abf568.entry.js +0 -5
  748. package/dist/webcomponents/p-4e5ea05c.entry.js +0 -5
  749. package/dist/webcomponents/p-521a1076.entry.js +0 -5
  750. package/dist/webcomponents/p-59fc52c0.entry.js +0 -5
  751. package/dist/webcomponents/p-5a9f4ea2.entry.js +0 -5
  752. package/dist/webcomponents/p-71853dfc.entry.js +0 -5
  753. package/dist/webcomponents/p-76d51654.entry.js +0 -5
  754. package/dist/webcomponents/p-77e242f3.entry.js +0 -5
  755. package/dist/webcomponents/p-7b849472.entry.js +0 -5
  756. package/dist/webcomponents/p-7dbfb875.entry.js +0 -5
  757. package/dist/webcomponents/p-7fa7f052.entry.js +0 -5
  758. package/dist/webcomponents/p-81c65747.entry.js +0 -5
  759. package/dist/webcomponents/p-91a5329f.entry.js +0 -5
  760. package/dist/webcomponents/p-966773a9.entry.js +0 -5
  761. package/dist/webcomponents/p-9abb5a53.entry.js +0 -5
  762. package/dist/webcomponents/p-9bf2e325.entry.js +0 -5
  763. package/dist/webcomponents/p-9c943b40.entry.js +0 -5
  764. package/dist/webcomponents/p-9ec3ca00.entry.js +0 -5
  765. package/dist/webcomponents/p-B0PbhaxL.js +0 -5
  766. package/dist/webcomponents/p-D3usVJE2.js +0 -16
  767. package/dist/webcomponents/p-ad91f149.entry.js +0 -5
  768. package/dist/webcomponents/p-aeea1f17.entry.js +0 -5
  769. package/dist/webcomponents/p-c2ca0289.entry.js +0 -5
  770. package/dist/webcomponents/p-c8af334e.entry.js +0 -5
  771. package/dist/webcomponents/p-cac49c6a.entry.js +0 -5
  772. package/dist/webcomponents/p-cb9ebfbe.entry.js +0 -5
  773. package/dist/webcomponents/p-ce3d689c.entry.js +0 -5
  774. package/dist/webcomponents/p-d11f95a0.entry.js +0 -5
  775. package/dist/webcomponents/p-dad03b49.entry.js +0 -5
  776. package/dist/webcomponents/p-db8e6322.entry.js +0 -5
  777. package/dist/webcomponents/p-dea8015f.entry.js +0 -5
  778. package/dist/webcomponents/p-e07e309d.entry.js +0 -5
  779. package/dist/webcomponents/p-e53d874b.entry.js +0 -5
  780. package/dist/webcomponents/p-e5540387.entry.js +0 -5
  781. package/dist/webcomponents/p-e9be4d3f.entry.js +0 -5
  782. package/dist/webcomponents/p-e9db9381.entry.js +0 -5
  783. package/dist/webcomponents/p-edca5de1.entry.js +0 -5
  784. package/dist/webcomponents/p-ee5b9fc9.entry.js +0 -5
  785. package/dist/webcomponents/p-f4ef8c63.entry.js +0 -5
  786. /package/dist/components/{p-5z6jgH1D.js → p-BNckUhK6.js} +0 -0
  787. /package/dist/webcomponents/{p-BIG-yees.js → p-Bt01zQ7-.js} +0 -0
@@ -4,33 +4,26 @@
4
4
  */
5
5
  import { Host, h } from "@stencil/core";
6
6
  import { reportInvalidPropValue } from "../../../shared/utils/prop-warning";
7
- import { resolveDensity, resolveIntegerPropValue, resolveNumberPropValue } from "../../../shared/utils/props";
7
+ import { resolveAllowedPropValue, resolveDensity, resolveIntegerPropValue, resolveNumberPropValue, } from "../../../shared/utils/props";
8
8
  import { createRafBatcher } from "../../../shared/utils/raf-batcher";
9
- import { computeVirtualWindow } from "../../../shared/utils/virtual-scroll";
9
+ import { filterSelectOptions, SELECT_ALL_OPTION_VALUE } from "../select.utils";
10
10
  /**
11
- * Subcomponente de lista virtualizada de opções, projetado para renderizar o conjunto de escolhas do `br-select`.
11
+ * Painel suspenso com lista virtualizada do `br-select`.
12
12
  *
13
- * ### Papel na composição
14
- * - Atua como o painel suspenso (popup `listbox`) que exibe os itens `br-select-option`.
15
- * - Implementa virtualização de itens para oferecer alta performance mesmo em listas extensas com centenas ou milhares de opções.
16
- * - Mantém o posicionamento flutuante e controla a rolagem de visualização do item ativo em navegação por teclado.
17
- *
18
- * ### Regra de uso e relacionamento
19
- * Gerenciado exclusivamente pelo componente pai `br-select`, que injeta a coleção normalizada em `options`, controla o estado de exibição (aberto/fechado), a seleção múltipla e o índice ativo. A prop `options` desta lista é um contrato interno de composição e não substitui a API de opções do `br-select`. A lista cria internamente elementos `br-select-option` para a janela virtualizada, em vez de exibir diretamente os filhos declarados no slot do pai. Não utilize `br-select-list` como controle autônomo de formulário, pois ele não possui associação nativa com formulários (`formAssociated`) nem campo de acionamento próprio.
20
- *
21
- * Para a documentação completa de design, consulte o [Design System do GovBR](https://www.gov.br/ds/components/select?tab=designer).
13
+ * É gerenciado internamente pelo `br-select` para exibir as opções com alta performance, mesmo em listas grandes. Não é necessário utilizá-lo de forma avulsa.
22
14
  *
23
15
  * @category Formulários, Seleção
24
16
  * @status stable
25
17
  * @part list - Contêiner visual da lista virtualizada.
26
- * @slot loading - Indicador exibido enquanto resultados remotos são carregados.
18
+ * @slot loading - Indicador exibido enquanto resultados remotos são carregados. Padrão: spinner com o texto "Pesquisando…".
27
19
  * @part loading - Área do indicador de carregamento.
28
20
  * @part option-group - Cabeçalho visual de um grupo de opções.
29
21
  */
30
22
  export class SelectList {
31
23
  constructor() {
32
24
  /**
33
- * Define a densidade visual da lista, das opções e do indicador de carregamento.
25
+ * Define a densidade visual da lista, das opções regulares e do indicador de carregamento.
26
+ * A opção sintética de selecionar todos permanece com densidade `small`.
34
27
  * Aceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.
35
28
  *
36
29
  * @default 'medium'
@@ -53,6 +46,14 @@ export class SelectList {
53
46
  * @default ''
54
47
  */
55
48
  this.searchTerm = '';
49
+ /**
50
+ * Define se `searchTerm` filtra as opções (`local`) ou se as opções já chegam
51
+ * filtradas pelo servidor (`remote`). Nos dois modos, um termo sem resultados
52
+ * exibe a mensagem de lista vazia. Valores inválidos usam `local`.
53
+ *
54
+ * @default 'local'
55
+ */
56
+ this.searchMode = 'local';
56
57
  /** Indica que os resultados remotos estão sendo carregados.
57
58
  * @default false
58
59
  */
@@ -79,6 +80,11 @@ export class SelectList {
79
80
  * @default 0
80
81
  */
81
82
  this.overscan = 0;
83
+ /**
84
+ * Oculta os divisores entre opções consecutivas, sem alterar a altura das linhas.
85
+ * @default false
86
+ */
87
+ this.hideDividers = false;
82
88
  /**
83
89
  * Rótulo apresentado para a ação de selecionar todos no modo múltiplo.
84
90
  *
@@ -104,7 +110,10 @@ export class SelectList {
104
110
  this.isMultiple = false;
105
111
  this.scrollTop = 0;
106
112
  this.measuredItemHeight = null;
113
+ this.measuredSelectAllItemHeight = null;
107
114
  this.measurementFrame = null;
115
+ this.measurementInProgress = false;
116
+ this.measurementRequested = false;
108
117
  this.filteredOptionsCache = null;
109
118
  this.filteredOptionsCacheKey = '';
110
119
  this.virtualRowsCache = null;
@@ -139,11 +148,16 @@ export class SelectList {
139
148
  return;
140
149
  const selectedByValue = new Map(options.map((option) => [option.value, Boolean(option.selected)]));
141
150
  renderedOptions.forEach((option) => {
151
+ if (option.value === undefined)
152
+ return;
142
153
  const selected = selectedByValue.get(option.value);
143
154
  if (selected !== undefined && option.selected !== selected)
144
155
  option.selected = selected;
145
156
  });
146
157
  }
158
+ get effectiveSearchMode() {
159
+ return resolveAllowedPropValue(this.el, 'searchMode', this.searchMode, ['local', 'remote'], 'local');
160
+ }
147
161
  get effectiveVisibleItems() {
148
162
  return resolveIntegerPropValue(this.el, 'visibleItems', this.visibleItems, 1, Number.MAX_SAFE_INTEGER, 6);
149
163
  }
@@ -157,7 +171,7 @@ export class SelectList {
157
171
  return resolveIntegerPropValue(this.el, 'overscan', this.overscan, 0, Number.MAX_SAFE_INTEGER, 0);
158
172
  }
159
173
  get effectiveActiveOptionIndex() {
160
- return resolveIntegerPropValue(this.el, 'activeOptionIndex', this.activeOptionIndex, -1, Number.MAX_SAFE_INTEGER, -1);
174
+ return Number.isInteger(this.activeOptionIndex) && this.activeOptionIndex >= -1 ? this.activeOptionIndex : -1;
161
175
  }
162
176
  /**
163
177
  * O `br-select` fornece a opção sintética de selecionar todos antes de
@@ -170,12 +184,15 @@ export class SelectList {
170
184
  }
171
185
  disconnectedCallback() {
172
186
  this.scrollBatch.cancel();
187
+ this.measurementRequested = false;
173
188
  if (this.measurementFrame !== null) {
174
189
  cancelAnimationFrame(this.measurementFrame);
175
190
  this.measurementFrame = null;
176
191
  }
177
192
  }
178
193
  handleSearchTermChange() {
194
+ this.filteredOptionsCache = null;
195
+ this.virtualRowsCache = null;
179
196
  this.scrollTop = 0;
180
197
  if (this.listElement) {
181
198
  this.listElement.scrollTop = 0;
@@ -228,6 +245,7 @@ export class SelectList {
228
245
  this.options = [];
229
246
  this.scrollTop = 0;
230
247
  this.measuredItemHeight = null;
248
+ this.measuredSelectAllItemHeight = null;
231
249
  if (this.listElement) {
232
250
  this.listElement.scrollTop = 0;
233
251
  }
@@ -280,11 +298,6 @@ export class SelectList {
280
298
  if (nextTerm === this.searchTerm)
281
299
  return;
282
300
  this.searchTerm = nextTerm;
283
- this.scrollTop = 0;
284
- if (this.listElement) {
285
- this.listElement.scrollTop = 0;
286
- }
287
- this.scheduleMeasureItemHeight();
288
301
  }
289
302
  /**
290
303
  * Alterna a lista entre modo simples e múltiplo.
@@ -325,10 +338,9 @@ export class SelectList {
325
338
  const rowIndex = this.getRowIndexForOption(rows, index);
326
339
  if (rowIndex < 0)
327
340
  return false;
328
- const rowHeight = this.getRowHeight();
329
341
  const viewportHeight = this.getViewportHeight();
330
- const maxScrollTop = Math.max(0, rows.length * rowHeight - viewportHeight);
331
- const nextScrollTop = Math.min(rowIndex * rowHeight, maxScrollTop);
342
+ const maxScrollTop = Math.max(0, this.getRowsHeight(rows) - viewportHeight);
343
+ const nextScrollTop = Math.min(this.getRowTop(rows, rowIndex), maxScrollTop);
332
344
  /*
333
345
  * Atualiza primeiro o estado que define a janela virtual. Dessa forma,
334
346
  * os itens do novo intervalo são renderizados antes de o viewport nativo
@@ -372,6 +384,18 @@ export class SelectList {
372
384
  await optionElement?.setFocus?.();
373
385
  return Boolean(optionElement);
374
386
  }
387
+ /** Torna o item ativo visível sem retirar o foco do campo. */
388
+ async revealOption(index) {
389
+ for (let attempt = 0; attempt < 3 && !this.getFilteredOptions()[index]; attempt += 1) {
390
+ await this.waitForNextFrame();
391
+ }
392
+ if (!this.getFilteredOptions()[index])
393
+ return false;
394
+ await this.waitForNextFrame();
395
+ await this.waitForNextFrame();
396
+ await this.ensureOptionVisible(index);
397
+ return Boolean(this.listElement);
398
+ }
375
399
  /**
376
400
  * Aciona a seleção programática de uma opção específica.
377
401
  *
@@ -426,7 +450,7 @@ export class SelectList {
426
450
  this.options = this.options.map((o) => ({ ...o, selected: false }));
427
451
  }
428
452
  isSelectAllOption(option) {
429
- if (option.value === SelectList.SELECT_ALL_VALUE || option.value === '__select_all__')
453
+ if (option.value === SELECT_ALL_OPTION_VALUE)
430
454
  return true;
431
455
  const optionLabel = (option.label ?? option.value).trim();
432
456
  return optionLabel === this.selectAllLabel || optionLabel === this.unselectAllLabel;
@@ -442,7 +466,7 @@ export class SelectList {
442
466
  }
443
467
  createSelectAllOption() {
444
468
  return {
445
- value: SelectList.SELECT_ALL_VALUE,
469
+ value: SELECT_ALL_OPTION_VALUE,
446
470
  label: this.selectAllLabel,
447
471
  selected: false,
448
472
  indeterminate: false,
@@ -538,7 +562,8 @@ export class SelectList {
538
562
  .trim();
539
563
  }
540
564
  getFilteredOptions() {
541
- const normalizedTerm = this.normalizeSearchText(this.searchTerm);
565
+ // No modo remoto o servidor já filtrou: o termo serve só para o estado vazio.
566
+ const normalizedTerm = this.effectiveSearchMode === 'local' ? this.normalizeSearchText(this.searchTerm) : '';
542
567
  const cacheKey = `${normalizedTerm}|${this.effectiveMultiple}|${this.selectAllLabel}|${this.unselectAllLabel}|${this.options.length}`;
543
568
  if (this.options === this.filteredOptionsCacheSource &&
544
569
  cacheKey === this.filteredOptionsCacheKey &&
@@ -552,14 +577,7 @@ export class SelectList {
552
577
  return this.options;
553
578
  }
554
579
  this.filteredOptionsCacheKey = cacheKey;
555
- this.filteredOptionsCache = this.options.filter((option) => {
556
- if (this.isSelectAllOption(option))
557
- return this.effectiveMultiple;
558
- const label = this.normalizeSearchText(option.label ?? option.value);
559
- const group = this.normalizeSearchText(option.group);
560
- const value = this.normalizeSearchText(option.value);
561
- return label.includes(normalizedTerm) || group.includes(normalizedTerm) || value.includes(normalizedTerm);
562
- });
580
+ this.filteredOptionsCache = filterSelectOptions(this.options, this.searchTerm, this.selectAllLabel, this.unselectAllLabel);
563
581
  return this.filteredOptionsCache;
564
582
  }
565
583
  getVirtualRows() {
@@ -568,6 +586,9 @@ export class SelectList {
568
586
  return this.virtualRowsCache;
569
587
  }
570
588
  const rows = [];
589
+ if (filteredOptions.length === 0 && this.normalizeSearchText(this.searchTerm)) {
590
+ rows.push({ kind: 'empty', key: 'empty' });
591
+ }
571
592
  let previousGroup;
572
593
  filteredOptions.forEach((option, optionIndex) => {
573
594
  const group = option.group?.trim() || undefined;
@@ -594,27 +615,44 @@ export class SelectList {
594
615
  return rows.findIndex((row) => row.kind === 'option' && row.optionIndex === optionIndex);
595
616
  }
596
617
  getViewportHeight() {
597
- const visibleRowCount = Math.min(this.getVirtualRows().length, this.effectiveVisibleItems);
598
- return visibleRowCount * this.getRowHeight();
618
+ const rows = this.getVirtualRows();
619
+ return this.getRowsHeight(rows, Math.min(rows.length, this.effectiveVisibleItems));
599
620
  }
600
- getRowHeight() {
621
+ getRowHeight(row) {
622
+ if (row?.kind === 'option' && this.isSelectAllOption(row.option)) {
623
+ return this.measuredSelectAllItemHeight ?? this.effectiveItemHeight;
624
+ }
601
625
  return this.measuredItemHeight ?? this.effectiveItemHeight;
602
626
  }
627
+ getRowsHeight(rows, endIndex = rows.length) {
628
+ const rowCount = Math.min(rows.length, Math.max(0, endIndex));
629
+ if (rowCount === 0)
630
+ return 0;
631
+ const itemHeight = this.measuredItemHeight ?? this.effectiveItemHeight;
632
+ return this.getRowHeight(rows[0]) + (rowCount - 1) * itemHeight;
633
+ }
634
+ getRowTop(rows, rowIndex) {
635
+ return this.getRowsHeight(rows, rowIndex);
636
+ }
603
637
  getVisibleRange() {
604
638
  const rows = this.getVirtualRows();
605
- const { startIndex, endIndex } = computeVirtualWindow({
606
- totalItems: rows.length,
607
- itemHeight: this.getRowHeight(),
608
- scrollTop: this.scrollTop,
609
- viewportHeight: this.getViewportHeight(),
610
- overscan: this.effectiveOverscan,
611
- });
612
- return { startIndex, endIndex };
639
+ if (rows.length === 0)
640
+ return { startIndex: 0, endIndex: 0 };
641
+ const viewportHeight = this.getViewportHeight();
642
+ const viewportBottom = this.scrollTop + viewportHeight;
643
+ const firstRowHeight = this.getRowHeight(rows[0]);
644
+ const itemHeight = this.measuredItemHeight ?? this.effectiveItemHeight;
645
+ const firstVisibleIndex = Math.min(rows.length - 1, this.scrollTop < firstRowHeight ? 0 : 1 + Math.floor((this.scrollTop - firstRowHeight) / itemHeight));
646
+ const endIndex = Math.min(rows.length, Math.max(firstVisibleIndex, 1 + Math.ceil((viewportBottom - firstRowHeight) / itemHeight)));
647
+ return {
648
+ startIndex: Math.max(0, firstVisibleIndex - this.effectiveOverscan),
649
+ endIndex: Math.min(rows.length, endIndex + this.effectiveOverscan),
650
+ };
613
651
  }
614
652
  clampScrollPosition() {
615
653
  if (!this.listElement)
616
654
  return;
617
- const totalHeight = this.getVirtualRows().length * this.getRowHeight();
655
+ const totalHeight = this.getRowsHeight(this.getVirtualRows());
618
656
  const maxScrollTop = Math.max(0, totalHeight - this.getViewportHeight());
619
657
  const nextScrollTop = Math.min(Math.max(0, this.listElement.scrollTop), maxScrollTop);
620
658
  if (this.listElement.scrollTop !== nextScrollTop) {
@@ -629,19 +667,69 @@ export class SelectList {
629
667
  return;
630
668
  if (this.measurementFrame !== null)
631
669
  return;
670
+ if (this.measurementInProgress) {
671
+ this.measurementRequested = true;
672
+ return;
673
+ }
632
674
  this.measurementFrame = requestAnimationFrame(async () => {
633
675
  this.measurementFrame = null;
634
- await this.measureItemHeight();
676
+ this.measurementInProgress = true;
677
+ try {
678
+ await this.measureItemHeight();
679
+ }
680
+ finally {
681
+ this.measurementInProgress = false;
682
+ if (this.measurementRequested) {
683
+ this.measurementRequested = false;
684
+ this.scheduleMeasureItemHeight();
685
+ }
686
+ }
635
687
  });
636
688
  }
637
689
  async measureItemHeight() {
638
- const firstOption = this.listElement?.querySelector('br-select-option');
639
- if (!firstOption?.getItemHeight)
640
- return;
641
- const nextHeight = await firstOption.getItemHeight();
642
- if (!nextHeight || nextHeight <= 0 || nextHeight === this.measuredItemHeight)
690
+ const renderedOptions = Array.from(this.listElement?.querySelectorAll('br-select-option') ?? []);
691
+ const originalHeights = renderedOptions.map((element) => element.style.height);
692
+ renderedOptions.forEach((element) => {
693
+ element.style.height = 'auto';
694
+ });
695
+ let measurements;
696
+ try {
697
+ await this.waitForNextFrame();
698
+ measurements = await Promise.allSettled(renderedOptions.map((element) => element.getItemHeight?.()));
699
+ }
700
+ finally {
701
+ renderedOptions.forEach((element, index) => {
702
+ element.style.height = originalHeights[index];
703
+ });
704
+ }
705
+ const measuredOptions = measurements.map((measurement, index) => {
706
+ if (measurement.status === 'rejected')
707
+ throw measurement.reason;
708
+ return { element: renderedOptions[index], height: measurement.value };
709
+ });
710
+ const filteredOptions = this.getFilteredOptions();
711
+ const selectAllOption = measuredOptions.find(({ element }) => {
712
+ const optionIndex = Number(element.dataset.optionIndex);
713
+ const option = filteredOptions[optionIndex];
714
+ return Number.isInteger(optionIndex) && option !== undefined && this.isSelectAllOption(option);
715
+ });
716
+ const regularOption = measuredOptions.find(({ element }) => {
717
+ const optionIndex = Number(element.dataset.optionIndex);
718
+ const option = filteredOptions[optionIndex];
719
+ return Number.isInteger(optionIndex) && option !== undefined && !this.isSelectAllOption(option);
720
+ });
721
+ const nextSelectAllHeight = selectAllOption?.height;
722
+ const nextItemHeight = regularOption?.height;
723
+ const hasSelectAllHeight = Boolean(nextSelectAllHeight && nextSelectAllHeight > 0);
724
+ const hasItemHeight = Boolean(nextItemHeight && nextItemHeight > 0);
725
+ if ((!hasSelectAllHeight || nextSelectAllHeight === this.measuredSelectAllItemHeight) &&
726
+ (!hasItemHeight || nextItemHeight === this.measuredItemHeight)) {
643
727
  return;
644
- this.measuredItemHeight = nextHeight;
728
+ }
729
+ if (nextSelectAllHeight && nextSelectAllHeight > 0)
730
+ this.measuredSelectAllItemHeight = nextSelectAllHeight;
731
+ if (nextItemHeight && nextItemHeight > 0)
732
+ this.measuredItemHeight = nextItemHeight;
645
733
  this.clampScrollPosition();
646
734
  }
647
735
  /**
@@ -660,9 +748,9 @@ export class SelectList {
660
748
  const rowIndex = this.getRowIndexForOption(rows, index);
661
749
  if (rowIndex < 0)
662
750
  return;
663
- const rowHeight = this.getRowHeight();
751
+ const rowHeight = this.getRowHeight(rows[rowIndex]);
664
752
  const viewportHeight = this.getViewportHeight();
665
- const optionTop = rowIndex * rowHeight;
753
+ const optionTop = this.getRowTop(rows, rowIndex);
666
754
  const optionBottom = optionTop + rowHeight;
667
755
  const viewportTop = this.listElement.scrollTop;
668
756
  const viewportBottom = viewportTop + viewportHeight;
@@ -673,7 +761,7 @@ export class SelectList {
673
761
  else if (optionBottom > viewportBottom) {
674
762
  nextScrollTop = optionBottom - viewportHeight;
675
763
  }
676
- const maxScrollTop = Math.max(0, rows.length * rowHeight - viewportHeight);
764
+ const maxScrollTop = Math.max(0, this.getRowsHeight(rows) - viewportHeight);
677
765
  nextScrollTop = Math.min(Math.max(0, nextScrollTop), maxScrollTop);
678
766
  if (nextScrollTop === viewportTop)
679
767
  return;
@@ -688,36 +776,38 @@ export class SelectList {
688
776
  };
689
777
  }
690
778
  renderOption(option, optionIndex, rowIndex) {
691
- const rowHeight = this.getRowHeight();
692
- const optionPart = this.isSelectAllOption(option) ? 'option select-all' : 'option';
693
- return (h("br-select-option", { part: optionPart, active: optionIndex === this.effectiveActiveOptionIndex, "data-option-index": optionIndex, density: this.effectiveDensity, disabled: option.disabled, id: `${this.el.id || 'br-select-list'}-option-${optionIndex}`, indeterminate: option.indeterminate,
694
- // A seleção faz parte da identidade visual renderizada. Incluir o estado
695
- // na chave evita que uma opção virtual reutilizada retenha o snapshot
696
- // interno anterior do br-select-option/br-item.
697
- key: `${option.value}:${option.selected ? 'selected' : 'unselected'}:${option.group ?? ''}`, label: option.label, ref: (element) => {
779
+ const isSelectAllOption = this.isSelectAllOption(option);
780
+ const row = this.getVirtualRows()[rowIndex];
781
+ const rowHeight = this.getRowHeight(row);
782
+ const optionPart = isSelectAllOption ? 'option select-all' : 'option';
783
+ return (h("br-select-option", { part: optionPart, active: optionIndex === this.effectiveActiveOptionIndex, "data-option-index": optionIndex, density: isSelectAllOption ? 'small' : this.effectiveDensity, disabled: option.disabled, id: `${this.el.id || 'br-select-list'}-option-${optionIndex}`, indeterminate: option.indeterminate, key: `${option.value}:${option.selected ? 'selected' : 'unselected'}:${option.group ?? ''}`, label: option.label, ref: (element) => {
698
784
  if (element && option.group)
699
785
  element.setAttribute('group', option.group);
700
786
  }, selected: option.selected, "show-checkbox": this.effectiveMultiple, style: {
701
787
  boxSizing: 'border-box',
702
788
  height: `${rowHeight}px`,
703
789
  position: 'absolute',
704
- top: `${rowIndex * rowHeight}px`,
790
+ top: `${this.getRowTop(this.getVirtualRows(), rowIndex)}px`,
705
791
  left: '0',
706
792
  right: '0',
707
793
  }, value: option.value }, option.content ? h("span", { innerHTML: option.content }) : (option.label ?? option.value)));
708
794
  }
709
795
  renderGroup(row, rowIndex) {
710
- const rowHeight = this.getRowHeight();
796
+ const rows = this.getVirtualRows();
797
+ const rowHeight = this.getRowHeight(rows[rowIndex]);
711
798
  return (h("div", { "aria-hidden": "true", class: "option-group-label", key: row.key, part: "option-group", role: "presentation", style: {
712
799
  boxSizing: 'border-box',
713
800
  height: `${rowHeight}px`,
714
801
  position: 'absolute',
715
- top: `${rowIndex * rowHeight}px`,
802
+ top: `${this.getRowTop(rows, rowIndex)}px`,
716
803
  left: '0',
717
804
  right: '0',
718
805
  } }, row.group));
719
806
  }
720
807
  getVirtualScrollStyle() {
808
+ // Durante o carregamento não há linhas virtuais: a altura acompanha o indicador.
809
+ if (this.loading)
810
+ return { overflowY: 'auto', overflowX: 'hidden' };
721
811
  return {
722
812
  height: `${this.getViewportHeight()}px`,
723
813
  overflowY: 'auto',
@@ -726,7 +816,7 @@ export class SelectList {
726
816
  }
727
817
  getVirtualSpacerStyle() {
728
818
  return {
729
- height: `${this.getVirtualRows().length * this.getRowHeight()}px`,
819
+ height: `${this.getRowsHeight(this.getVirtualRows())}px`,
730
820
  position: 'relative',
731
821
  };
732
822
  }
@@ -740,21 +830,46 @@ export class SelectList {
740
830
  }
741
831
  renderVirtualOptions() {
742
832
  const { startIndex, visibleRows } = this.getVirtualVisibleRows();
743
- if (visibleRows.length === 0) {
744
- return (h("div", { part: "empty-option", role: "option", "aria-selected": "false", tabIndex: 0 }, "Nenhum resultado encontrado"));
745
- }
746
- return (h("div", { style: this.getVirtualSpacerStyle() }, visibleRows.map((row, relativeIndex) => {
833
+ const renderedRows = visibleRows.flatMap((row, relativeIndex) => {
747
834
  const rowIndex = startIndex + relativeIndex;
748
835
  if (row.kind === 'group')
749
- return this.renderGroup(row, rowIndex);
750
- return this.renderOption(row.option, row.optionIndex, rowIndex);
751
- })));
836
+ return [this.renderGroup(row, rowIndex)];
837
+ if (row.kind === 'empty') {
838
+ return [
839
+ h("div", { key: row.key, part: "empty-option", role: "status", style: {
840
+ boxSizing: 'border-box',
841
+ height: `${this.getRowHeight(row)}px`,
842
+ position: 'absolute',
843
+ top: `${this.getRowTop(this.getVirtualRows(), rowIndex)}px`,
844
+ left: '0',
845
+ right: '0',
846
+ } }, "Nenhum resultado encontrado"),
847
+ ];
848
+ }
849
+ const option = this.renderOption(row.option, row.optionIndex, rowIndex);
850
+ const nextRow = this.getVirtualRows()[rowIndex + 1];
851
+ if (this.hideDividers || nextRow?.kind !== 'option')
852
+ return [option];
853
+ // O divisor ocupa a borda da linha, sem criar um índice ou altura extra.
854
+ return [
855
+ option,
856
+ h("br-divider", { key: `divider-${row.key}`, part: "option-divider", "aria-hidden": "true", orientation: "horizontal", thickness: "small", marginTop: 0, marginBottom: 0, marginLeft: 0, marginRight: 0, style: {
857
+ position: 'absolute',
858
+ top: `calc(${this.getRowTop(this.getVirtualRows(), rowIndex + 1)}px - var(--surface-width-sm, 1px))`,
859
+ left: '0',
860
+ right: '0',
861
+ pointerEvents: 'none',
862
+ zIndex: '1',
863
+ } }),
864
+ ];
865
+ });
866
+ return h("div", { style: this.getVirtualSpacerStyle() }, renderedRows);
752
867
  }
753
868
  renderLoading() {
754
- return (h("div", { part: "loading", role: "status", "aria-live": "polite" }, h("slot", { name: "loading" }, h("br-loading", { density: this.effectiveDensity, label: "Buscando op\u00E7\u00F5es" }))));
869
+ return (h("div", { part: "loading", role: "status", "aria-live": "polite" }, h("slot", { name: "loading" }, h("br-loading", { size: "small", label: "Pesquisando\u2026", labelPosition: "right" }))));
755
870
  }
756
871
  render() {
757
- return (h(Host, { key: '47c188f8f3e86d028476b8583d667e4eb412ec78' }, h("div", { key: '36386dc9532a3bd3561e319493ec7b86100be204', class: this.getCssClassMap(), part: "list", ref: (el) => (this.listElement = el), onScroll: this.handleScroll, style: this.getVirtualScrollStyle() }, this.loading ? this.renderLoading() : this.renderVirtualOptions())));
872
+ return (h(Host, { key: 'b374cf9ebd19771a1a1dfecc4a33f6447b59fba6' }, h("div", { key: '665a2c3efef778936ca27d376c48de3cbf38f685', class: this.getCssClassMap(), part: "list", tabIndex: -1, ref: (el) => (this.listElement = el), onScroll: this.handleScroll, style: this.getVirtualScrollStyle() }, this.loading ? this.renderLoading() : this.renderVirtualOptions())));
758
873
  }
759
874
  static get is() { return "br-select-list"; }
760
875
  static get encapsulation() { return "shadow"; }
@@ -792,7 +907,7 @@ export class SelectList {
792
907
  "name": "default",
793
908
  "text": "'medium'"
794
909
  }],
795
- "text": "Define a densidade visual da lista, das op\u00E7\u00F5es e do indicador de carregamento.\nAceita `small`, `medium` ou `large`. Valores inv\u00E1lidos usam `medium`."
910
+ "text": "Define a densidade visual da lista, das op\u00E7\u00F5es regulares e do indicador de carregamento.\nA op\u00E7\u00E3o sint\u00E9tica de selecionar todos permanece com densidade `small`.\nAceita `small`, `medium` ou `large`. Valores inv\u00E1lidos usam `medium`."
796
911
  },
797
912
  "getter": false,
798
913
  "setter": false,
@@ -833,7 +948,7 @@ export class SelectList {
833
948
  },
834
949
  "searchTerm": {
835
950
  "type": "string",
836
- "mutable": false,
951
+ "mutable": true,
837
952
  "complexType": {
838
953
  "original": "string",
839
954
  "resolved": "string",
@@ -854,6 +969,36 @@ export class SelectList {
854
969
  "attribute": "search-term",
855
970
  "defaultValue": "''"
856
971
  },
972
+ "searchMode": {
973
+ "type": "string",
974
+ "mutable": false,
975
+ "complexType": {
976
+ "original": "SelectSearchMode",
977
+ "resolved": "\"local\" | \"remote\"",
978
+ "references": {
979
+ "SelectSearchMode": {
980
+ "location": "import",
981
+ "path": "../select.types",
982
+ "id": "src/components/select/select.types.ts::SelectSearchMode",
983
+ "referenceLocation": "SelectSearchMode"
984
+ }
985
+ }
986
+ },
987
+ "required": false,
988
+ "optional": false,
989
+ "docs": {
990
+ "tags": [{
991
+ "name": "default",
992
+ "text": "'local'"
993
+ }],
994
+ "text": "Define se `searchTerm` filtra as op\u00E7\u00F5es (`local`) ou se as op\u00E7\u00F5es j\u00E1 chegam\nfiltradas pelo servidor (`remote`). Nos dois modos, um termo sem resultados\nexibe a mensagem de lista vazia. Valores inv\u00E1lidos usam `local`."
995
+ },
996
+ "getter": false,
997
+ "setter": false,
998
+ "reflect": false,
999
+ "attribute": "search-mode",
1000
+ "defaultValue": "'local'"
1001
+ },
857
1002
  "loading": {
858
1003
  "type": "boolean",
859
1004
  "mutable": false,
@@ -946,6 +1091,29 @@ export class SelectList {
946
1091
  "attribute": "overscan",
947
1092
  "defaultValue": "0"
948
1093
  },
1094
+ "hideDividers": {
1095
+ "type": "boolean",
1096
+ "mutable": false,
1097
+ "complexType": {
1098
+ "original": "boolean",
1099
+ "resolved": "boolean",
1100
+ "references": {}
1101
+ },
1102
+ "required": false,
1103
+ "optional": false,
1104
+ "docs": {
1105
+ "tags": [{
1106
+ "name": "default",
1107
+ "text": "false"
1108
+ }],
1109
+ "text": "Oculta os divisores entre op\u00E7\u00F5es consecutivas, sem alterar a altura das linhas."
1110
+ },
1111
+ "getter": false,
1112
+ "setter": false,
1113
+ "reflect": true,
1114
+ "attribute": "hide-dividers",
1115
+ "defaultValue": "false"
1116
+ },
949
1117
  "selectAllLabel": {
950
1118
  "type": "string",
951
1119
  "mutable": false,
@@ -1025,7 +1193,8 @@ export class SelectList {
1025
1193
  "isOpen": {},
1026
1194
  "isMultiple": {},
1027
1195
  "scrollTop": {},
1028
- "measuredItemHeight": {}
1196
+ "measuredItemHeight": {},
1197
+ "measuredSelectAllItemHeight": {}
1029
1198
  };
1030
1199
  }
1031
1200
  static get methods() {
@@ -1287,6 +1456,27 @@ export class SelectList {
1287
1456
  }]
1288
1457
  }
1289
1458
  },
1459
+ "revealOption": {
1460
+ "complexType": {
1461
+ "signature": "(index: number) => Promise<boolean>",
1462
+ "parameters": [{
1463
+ "name": "index",
1464
+ "type": "number",
1465
+ "docs": ""
1466
+ }],
1467
+ "references": {
1468
+ "Promise": {
1469
+ "location": "global",
1470
+ "id": "global::Promise"
1471
+ }
1472
+ },
1473
+ "return": "Promise<boolean>"
1474
+ },
1475
+ "docs": {
1476
+ "text": "Torna o item ativo vis\u00EDvel sem retirar o foco do campo.",
1477
+ "tags": []
1478
+ }
1479
+ },
1290
1480
  "setOptionSelected": {
1291
1481
  "complexType": {
1292
1482
  "signature": "(index: number, selected?: boolean) => Promise<boolean>",
@@ -1351,4 +1541,3 @@ export class SelectList {
1351
1541
  }
1352
1542
  SelectList.SELECT_ALL_LABEL = 'Selecionar todos';
1353
1543
  SelectList.DESELECT_ALL_LABEL = 'Desselecionar todos';
1354
- SelectList.SELECT_ALL_VALUE = 'Alternar todos';